qidao123.com技术社区-IT企服评测·应用市场

标题: 【C++详解】类和对象(上)类的定义、实例化、this指针 [打印本页]

作者: 写过一篇    时间: 6 天前
标题: 【C++详解】类和对象(上)类的定义、实例化、this指针

一、类的定义

1、类定义格式

   
  2、访问限定符

   
  1. class Date
  2. {
  3. public:
  4.         //成员函数(函数声明或者定义都可以放)
  5. private:
  6.         //成员变量
  7.         int _year;
  8.         int _month;
  9.         int _day;
  10. };
复制代码
3、类域

   1、类定义了⼀个新的作用域,类的所有成员都在类的作用域中,在类体外定义成员时,须要使用 :: 作用域操作符指明成员属于哪个类域。
  

   2、类域影响的是编译的查找规则,上面程序中Date函数是下一节要先容的构造函数,Date假如不指定类域Date,那么编译器就把Date当成全局函数,那么编译时,找不到_year等成员变量的声明/定义在哪⾥,就会报错。指定类域Date,就是知道Date是成员函数,当前域找不到的_year等成员,就会到类域中去查找。
3、我们这里熟悉类域还要把它和命名空间域举行比力,类域主要解决的是类和类之间的命名冲突,比如stack和list都可以定义push函数,命名空间域解决的是全局的函数/变量/类型的命名冲突题目,比如在两个命名空间可以分别定义一个stack类。
4、还要区分类域和局部域,我们知道局部域和全局域会影响变量的生命周期,而类域和命名空间域不会影响生命周期,所以类域和局部域是两个平行的东西,不要混一起。
  二、实例化

1、实例化概念

   
  1. class Date
  2. {
  3. public:
  4.         void Init(int year = 1, int month = 1, int day = 1)
  5.         {
  6.                 _year = year;
  7.                 _month = month;
  8.                 _day = day;
  9.         }
  10.         void print()
  11.         {
  12.                 cout << _year << "/" << _month << "/" << _day << endl;
  13.         }
  14. private:
  15.         //只是声明
  16.         int _year;
  17.         int _month;
  18.         int _day;
  19. };
  20. int main()
  21. {
  22.         Date d1;
  23.         d1.Init(2025, 5, 12);
  24.         d1.print();
  25.         return 0;
  26. }
复制代码
2、对象大小

   
  

   
    这里小编还想先容一下口试中经常被问到的题目,为什么要内存对齐呢?
其实是为了进步读取服从,用空间换时间,因为底层硬件设计的原因,读数据一样平常是从整数倍位置开始读,假如不内存对齐,很有大概出现本来读一次就行了但是因为没有内存对齐要读多次的环境。
  

   
  三、this指针

   
  

   
  以上就是小编分享的全部内容了,假如以为不错还请留下免费的赞和收藏
假如有发起欢迎通过评论区或私信留言,感谢您的大力支持。
一键三连好运连连哦~~



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4