struct结构体里能放函数吗?

简介: struct结构体里能放函数吗?

C语言


C语言里面不能,在C语言里结构体是一种复合数据类型只能存放数据,不过可以定义一个指向函数的指针进行使用。


C++(C++并发编程多体现)


C++里可以在结构体内定义函数,用法和class定义类是一样的,说穿了struct 和 class用法相同,但要注意的一点是内,struct默认的是public类型,然而class默认的是private类型的。


下面有一个C++结构体定义函数的小例子,大家可以试一试


#include<iostream>
#include<string>
using namespace std;
struct Person
{
  Person(string name);
  string greet(string other_name);
  string m_name;
};
Person::Person(string name)
{
    m_name = name;
}
string Person::greet(string other_name)
{
    return "Hi " + other_name + ", my name is " + m_name;
}
int main()
{
    Person m_person("大壮");
    string str = m_person.greet("喜子");
    cout<<str<<endl;
}


相关文章
|
10月前
|
存储
结构体和结构体指针的区别
结构体和结构体指针的区别
334 1
|
机器学习/深度学习 程序员 C语言
传递结构体变量和结构体指针|学习笔记
快速学习传递结构体变量和结构体指针
191 0
传递结构体变量和结构体指针|学习笔记
struct 结构体解析(原)
(一)基本概念     结构体是一个或是多个变量的集合,这些变量可能为不同的类型,为了处理的方便而将这些变量组合在一个名字之下。我们将关键字struct引入了结构声明中。结构声明包含在花括号内的一系列声明组成。
943 0
|
机器学习/深度学习 程序员 C语言
传递结构体变量和结构体指针
传递结构体变量 传递指向结构体变量指针 动态申请结构体 建成图书馆
传递结构体变量和结构体指针
|
10月前
函数与结构体
函数与结构体
55 3
|
C语言 C++ 编译器
结构体定义 typedef struct 用法详解和用法小结
typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。具体区别在于:若struct node {}这样来定义结构体的话。在申请node 的变量时,需要这样写,struct node n;若用typedef,可以这样写,typedef struct node{}NODE; 。
2367 0
|
编译器 C++
自定义类型之结构体的基础和进阶(有关位段、结构体自引用、嵌套、内存对齐、修改对齐数、结构体的传参、和offsetof宏的使用)
一、结构体基础知识 二、结构体的进阶(有关结构体的自引用,嵌套,内存对齐和内存设计) (一、)首先是结构体的嵌套 (二、)结构体的自引用 (三、)结构体的内存对齐(如何计算结构体的所占内存大小) (四、)如何修改默认对齐数 三、offsetof的意思 四、结构体的传参 五、位段的使用和注意 总结:
|
10月前
|
存储 编译器 Linux
匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
109 0
|
10月前
|
算法 C语言
结构体相关知识
结构体相关知识