如何理解C++中结构体的默认访问权限是公共的(public),而类的默认访问权限是私有的(private)
作者:野牛程序员:2023-02-22 12:04:55信息竞赛阅读 2673
在 C++ 中,结构体和类的定义方式是非常相似的,唯一的区别在于默认的访问权限不同。当定义一个结构体时,所有成员变量和成员函数都默认为公共的(public),这意味着可以在结构体的外部访问和修改这些成员变量和成员函数。例如:
struct Student { string name; int age; void print() { cout << "name: " << name << ", age: " << age << endl; } }; int main() { Student s; s.name = "Tom"; s.age = 20; s.print(); return 0; }
在上面的示例中,结构体 Student
中的成员变量 name
和 age
,以及成员函数 print()
都是公共的,可以在结构体的外部直接访问和使用。
而当定义一个类时,所有成员变量和成员函数都默认为私有的(private),这意味着只能在类的内部访问和修改这些成员变量和成员函数。例如:
class BankAccount { private: string accountNumber; double balance; public: void deposit(double amount) { balance += amount; } void withdraw(double amount) { balance -= amount; } double getBalance() const { return balance; } }; int main() { BankAccount account; account.deposit(100.0); account.withdraw(50.0); double balance = account.getBalance(); cout << "Balance: " << balance << endl; return 0; }
在上面的示例中,类 BankAccount
中的成员变量 accountNumber
和 balance
都是私有的,只能在类的内部访问和修改,而成员函数 deposit()
、withdraw()
和 getBalance()
都是公共的,可以在类的外部调用和使用。
因此,结构体和类的默认访问权限不同,这是因为结构体在设计初衷上更多地用于描述一些简单的数据结构,例如一个点、一个日期等,而类则更多地用于描述一个对象,例如一个学生、一个汽车、一个银行账户等,因此需要更严格的访问控制来保护对象的数据和操作。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
- 上一篇:C++中的结构体详细介绍
- 下一篇:通俗易懂的讲解C++中的指针变量