在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
免责声明:以上内容仅是站长个人看法、理解、学习笔记、总结和研究收藏。不保证其正确性,因使用而带来的风险与本站无关!如本网站内容冒犯了您的权益,请联系站长,邮箱: ,我们核实并会尽快处理。