c++ struct结构体和class类的比较

1. C++类的属性默认访问权限

如果没有在类中设置属性和方法的访问权限,那么默认访问权限是private。

#include <iostream>
using namespace std;
class A{
    int a;	
    int func(){
        return 0;
    }
};
int main(int argc, char *arg[])
{
    A obj;
    obj.a = 1;
    obj.func();
    return 0;
}
||=== 构建文件: "无目标" 在 "无项目" 中 (编译器: 未知的) ===|
StruCla.cpp||In function 'int main()':
StruCla.cpp|4|error: 'int A::a' is private
StruCla.cpp|12|error: within this context
StruCla.cpp|5|error: 'int A::func()' is private
StruCla.cpp|13|error: within this context
||=== 构建 失败: 4 error(s), 0 warning(s) (0 分, 0 秒) ===|

2. C++ struct的成员默认访问权限是public

#include <iostream>
using namespace std;
struct B{
    int b;
    char c;
    B()
    {
        b = 2;
        c = 'S';
    }

    ~B()
    {
        b = 0;
    }

    int func()
    {
        b = 10;
        cout << c << endl;
    }
};

int main()
{
    B SctObj;
    cout << SctObj.b << endl;
    SctObj.func();
    return 0;
}

无错误输出:
输出


3. C++中的 struct 和 class 有什么区别?

(1) 默认继承权。class的默认继承权是private,而struct默认继承权是public。
(2) 成员默认访问权限。class默认访问权限是private,struct默认是public。
除了上面两点,其他没什么区别,语法都一样。

4. C++ struct和C struct的区别

Protection行为能否定义函数
C否,但可以有函数指针
C++可以,默认是public

这个protection行为个人认为就是成员是否具有访问权限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值