gpt4 book ai didi

c++ - 什么时候让函数成为 C++ 中的类成员函数?

转载 作者:行者123 更新时间:2023-12-02 10:31:08 26 4
gpt4 key购买 nike

我对编程相当陌生,并且对何时应该将函数设为类的成员函数或仅使用成员 getter 函数来访问类的私有(private)成员感到困惑。我想的任何一种方式都可以。

考虑以下:

#include <iostream>
#include <string>
using namespace std;

class Person
{
string name;
int age;
public:
Person()
: name("James"), age(30)
{};
void Print();
string GetName(Person& person) { return name;};
int GetAge(Person&) { return age;};
};

void Person::Print() // member function
{
cout << "Using member function: " << name << ", " << age << endl;
}

void Print(Person& person) // non-member function
{
cout << "Using non-member function: " << person.GetName(person) << ", " << person.GetAge(person) << endl;
}

int main()
{
Person test_person; //default constructor
test_person.Print(); // member function
Print(test_person); // non-member function

return 0;
}

两个成员函数 Person::Print() 的输出相同或非成员函数 Print()即程序产生:
Using member function: James, 30
Using non-member function: James, 30

然后,您可以清楚地编写一个非成员函数,该函数使用成员 getter 函数来访问类的私有(private)成员,因此您可以采用任何一种方式。

在我看来就像制作 Print() Person 类的成员函数是要走的路,因为该函数显然特定于类及其私有(private)数据,并且如果他们使用该类,则可能希望被其他人使用。

是对的吗?我还应该考虑什么?

最佳答案

我认为您可能需要考虑再看一下 access modifiers .不能修改privateprotected类的数据成员。因此,您需要它们的成员函数。

关于c++ - 什么时候让函数成为 C++ 中的类成员函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62229667/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com