ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++复习 - 类和对象

2021-07-14 11:34:40  阅读:159  来源: 互联网

标签:变量 对象 成员 定义 C++ 类外 函数 复习


声明: 本篇博客的学习途径主要为以下网站和课堂讲解,发博客目的仅为学习使用
http://c.biancheng.net/cplus/

目录

类只是一个模板(Template),是一个设计图,编译后不占用内存空间,所以在定义类时不能对成员变量进行初始化,因为没有地方存储数据。
只有在创建对象,(盖楼)以后才会给成员变量分配内存,这个时候就可以赋值了。

成员变量大都以m_开头,这是约定成俗的写法,不是语法规定的内容。以m_开头既可以一眼看出这是成员变量,又可以和成员函数中的形参名字区分开。

类外实例化对象:对象与new

对象: 实例化的对象
栈上创建出来的对象有名字,比如stu。
使用 new 在堆上创建出来的对象是匿名的,没法直接使用,必须要用一个指针指向它,再借助指针来访问它的成员变量或成员函数。

Student stu;
Student *pStu = &stu;

Student *pStu = new Student;

借助的这个指针*pstu 通过->来访问对象的变量和函数与结构体指针类似

类内:成员函数的声明与定义

成员函数必须先在类体中作原型声明,然后在类外定义,也就是说类体的位置应在函数定义之前。
定义在类外,需要用到域解析符::

class Student{
public:
    //成员变量
    char *name;
    int age;
    float score;

    //成员函数
    void say();  //函数声明
};

//函数定义
void Student::say(){
    cout<<name<<"的年龄是"<<age<<",成绩是"<<score<<endl;
}
  • 为什么函数声明在类内,定义在类外呢?
    因为类体内部定义的函数默认就是内联函数
    内联函数一般不是我们所期望的,它会将函数调用处用函数体替代,所以我建议在类体内部对成员函数作声明
    ∴ 没有必要在类外把定义在类外的函数添加inline关键字。

类内: 成员访问权限

成员访问限定符:public , protected , private
只在内部类使用的变量设为private
允许外部调用的函数 设为public
(常通过public的set get来修改和获得类内的private变量)
只允许子类访问的变量设为:protect

所谓封装,是指尽量隐藏类的内部实现,只向用户提供有用的成员函数。

C++对象的内存模型

编译器会将成员变量和成员函数分开存储:分别为每个对象的成员变量分配内存,但是所有对象都共享同一段函数代码
在这里插入图片描述

标签:变量,对象,成员,定义,C++,类外,函数,复习
来源: https://blog.csdn.net/AKUANer/article/details/118722928

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有