当前位置:首页信息竞赛 > 正文

如何理解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 中的成员变量 nameage,以及成员函数 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 中的成员变量 accountNumberbalance 都是私有的,只能在类的内部访问和修改,而成员函数 deposit()withdraw()getBalance() 都是公共的,可以在类的外部调用和使用。

因此,结构体和类的默认访问权限不同,这是因为结构体在设计初衷上更多地用于描述一些简单的数据结构,例如一个点、一个日期等,而类则更多地用于描述一个对象,例如一个学生、一个汽车、一个银行账户等,因此需要更严格的访问控制来保护对象的数据和操作。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • 企业网站建设
  • 最新推荐

    热门点击