1. 程式人生 > >C++struct裡定義函式

C++struct裡定義函式

在做一個小的程式題的時候,看到了struct中定義了函式,之前沒有看到過,所以查了一點相關的知識,在這裡記錄一下:

c++中允許在結構體當中定義函式,它的用法和類的用法很像,不過與類有一個區別在於,struct中定義的函式和變數都是預設為public的,但class中的則是預設為private。

#include<iostream>
#include<string>

struct Person
{
  Person(std::string name);
  std::string greet(std::string other_name);
  std::string m_name;
};

Person::Person(std::string name)
{
    m_name = name;
}

std::string Person::greet(std::string other_name)
{
    return "Hi " + other_name + ", my name is " + m_name;
}

int main()
{
    Person m_person("JANE");
    std::string str = m_person.greet("JOE");
    std::cout<<str<<std::endl;
}