c++ 结构体中当定义了函数后,数据自动变成私有的是吗
时间: 2024-03-23 14:43:36 浏览: 126
C++私有构造函数的作用
在 C++ 中,结构体和类的成员默认都是 private 的,也就是说,结构体内部的成员变量和成员函数都只能在结构体内部访问和修改,外部无法直接访问。因此,在结构体中定义函数之后,结构体内部的成员变量并不会自动变成私有的,它们本身就是私有的。
当然,如果在结构体中显式地使用了 public、protected 或者 private 关键字来定义成员变量和成员函数的访问权限,那么成员变量和成员函数就会根据它们的访问权限被分别归为 public、protected 或者 private。因此,在结构体中定义函数时,可以使用这些访问控制关键字来控制成员变量和成员函数的访问权限。例如:
```
struct Person {
public:
string name;
int age;
Person(string n, int a): name(n), age(a) {}
void sayHello() {
cout << "Hello, my name is " << name << ", and I'm " << age << " years old." << endl;
}
};
int main() {
Person p("Tom", 18);
p.sayHello(); // 输出 Hello, my name is Tom, and I'm 18 years old.
return 0;
}
```
在上面的例子中,name 和 age 成员变量被定义为 public,可以在结构体外部访问和修改。而 sayHello 成员函数被定义为 public,可以在结构体外部调用,输出结果为 Hello, my name is Tom, and I'm 18 years old.
阅读全文