欢迎观临
路漫漫其修远兮,吾将上下而求索

C++ 类型:内置类型,复合类型和类类型

如标题所言,C++类型基本分为三类:内置类型,复合类型和类类型。

  • 内置类型:编译器内置的基本类型,如int, char, float, double, bool等;
  • 复合类型:根据其它类型定义的类型,主要有这么几类:数组,字符串(C-style),指针,引用,结构体(struct),联合体(union);
  • 类类型:用struct和class定义的类。

这里复合类型的结构体指的也是c-style的结构体,和类型类一样,也是用struct和class定义;其和类类型的区别是,没有构造函数(包括默认构造函数)和析构函数。

比如下例:

struct A {
    int a;
};
struct B {
    int b;
    B() {}
};
struct C {
    string c;
};

其中只有A是复合类型结构体,B和C都是类类型;B因为有显式定义默认构造函数;C因为有类成员,编译器会合成默认构造函数。

区别struct和class是复合类型结构体还是类类型是有意义的。

  1. C++中复合类型结构体变量可以直接用初始化列表赋值,而类对象不行:
struct A {
    char c;
    int i;
    double d;
};
A a={'p',7,3.1415926}; //定义时直接赋值

上例如果给struct A加上构造函数,则编译错误。

  1. 对于union类型,其成员就只能包含复合类型结构体,而不能有类类型。详情见:C++ union介绍
赞(1) 打赏
未经允许不得转载:云海鹰影博客 » C++ 类型:内置类型,复合类型和类类型
分享到: 更多 (0)

欢迎留言 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏