struct和class两个关键字的区别

1. 《C++ Primer》

用class和struct关键字定义类的唯一差别在于默认访问级别:默认情况下,struct的成员为public,而class的成员为private。

2. class关键字还可以用于定义模板类型,struct不可以。

#include<iostream>                                                                                                                                                                            
                                                                                                                                                                                              
class C0                                                                                                                                                                                      
{                                                                                                                                                                                             
    int x;                                                                                                                                                                                    
};                                                                                                                                                                                            
                                                                                                                                                                                              
struct S0                                                                                                                                                                                     
{                                                                                                                                                                                             
    int x;                                                                                                                                                                                    
};                                                                                                                                                                                            
                                                                                                                                                                                              
class C1:S0                                                                                                                                                                                   
{                                                                                                                                                                                             
    int y;                                                                                                                                                                                    
};                                                                                                                                                                                            
                                                                                                                                                                                              
struct S1:S0                                                                                                                                                                                  
{                                                                                                                                                                                             
    int y;                                                                                                                                                                                    
};                                                                                                                                                                                            
                                                                                                                                                                                              
template <struct T> //error                                                                                                                                                                          
T comp(T t0, T t1)                                                                                                                                                                            
{                                                                                                                                                                                             
    return t0-t1;                                                                                                                                                                             
}                                                                                                                                                                                             
                                                                                                                                                                                              
int main()                                                                                                                                                                                    
{                                                                                                                                                                                             
    C0 c0;                                                                                                                                                                                    
    //c0.x = 0; // error                                                                                                                                                                               
    C1 c1;                                                                                                                                                                                    
    //c1.x = 0; // error                                                                                                                                                                             
                                                                                                                                                                                              
    S0 s0;                                                                                                                                                                                    
    s0.x = 0;                                                                                                                                                                                 
                                                                                                                                                                                              
    S1 s1;                                                                                                                                                                                    
    s1.x = 0;                                                                                                                                                                                 
                                                                                                                                                                                              
    std::cout << comp(1,2);                                                                                                                                                                   
} 

转载于:https://www.cnblogs.com/keviwu/p/6063153.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值