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;
}