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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章