在C++中,结构与类相同,但有一些区别。 其中最重要的是安全性。 结构不是安全的,类是安全的并且隐藏其编程和设计细节,结构不能向最终用户隐藏其实现细节。 以下是对此差异进行阐述的要点:

1. 区别一

默认情况下,类的成员是私有的,而结构的成员是公共的。
例如,程序1编译失败,程序2运行正常。
程序-1

// Program 1 
#include <stdio.h> 

class Test { 
    int x; // x is private 
}; 
int main() 
{ 
  Test t; 
  t.x = 20; // compiler error because x is private 
  getchar(); 
  return 0; 
}

程序-2

// Program 2 
#include <stdio.h> 

struct Test { 
    int x; // x is public 
}; 
int main() 
{ 
  Test t; 
  t.x = 20; // works fine because x is public 
  getchar(); 
  return 0; 
}

区别二

从类/结构派生结构时,基类/结构的默认访问说明符是公共的。 当派生一个类时,默认的访问说明符是私有的。
例如,程序3编译失败,程序4运行正常。
程序3

// Program 3 
#include <stdio.h> 

class Base { 
public: 
    int x; 
}; 

class Derived : Base { }; // is equilalent to class Derived : private Base {} 

int main() 
{ 
  Derived d; 
  d.x = 20; // compiler error becuase inheritance is private 
  getchar(); 
  return 0; 
}

程序4

// Program 4 
#include <stdio.h> 

class Base { 
public: 
    int x; 
}; 

struct Derived : Base { }; // is equilalent to struct Derived : public Base {} 

int main() 
{ 
  Derived d; 
  d.x = 20; // works fine becuase inheritance is public 
  getchar(); 
  return 0; 
}
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果。
转载请注明:文章转载自 有区别网 [http://www.vsdiffer.com]
本文标题:在C++中结构和类
本文链接:https://www.vsdiffer.com/vs/dasdffd.html
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。