如何理解C++中结构体的默认访问权限是公共的(public),而类的默认访问权限是私有的(private)
作者:野牛程序员:2023-02-22 12:04:55信息竞赛阅读 3213
在 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++中的指针变量
