-
构造函数的规则和特点2
查看全部 -
构造函数的规则和特点
查看全部 -
栈区的特点:
内存由系统来进行控股,无论是分配还是回收都不需要程序员关心。
堆区的特点:new分配出来的内存,会到堆区未来一定要用delete
查看全部 -
class Car{ Car(); Car(string name); }; Car::Car(){ //不加void m_strName="abc"; } Car::Car(string name){ m_strName=name; }
查看全部 -
构造函数:在对象实例化时被自动调用(且仅被调用一次)
构造函数与类同名,没有返回值,连void都不用写,可以重载
当用户没有定义构造函数时,编译器自动生成一个(这个函数啥也不做)
1、无参的构造函数
class Car{ public: Car(){ m_strName="jam"; //构造函数与类名相同,都是Car } private: string m_strName; }
2、有参的构造函数
class Car{ public: Car(string name){ m_strName = name; } private: string m_strName; }
查看全部 -
内存分区的笔记
查看全部 -
【内存分区】
栈区:int x=0; int *p=NULL;
堆区:int *p=new int[20];
全局区
常量区:string str=“hello”;
代码区
查看全部 -
分文件定义:
1、在头文件建立一个.h格式的头文件
将类的声明(成员函数的声明)放在头文件,即class Car{...}
#include <string> using namespace std;
2、在源文件建立一个同名的.cpp文件,将对类的定义(成员函数的具体定义)放进去
#include "Car.h" //""是从自定义的文件中找,<>是从函数库中找 #include <iostream> using namespace std;
3、在main.cpp中也要声明#include "Car.h",但是不需要声明Car.cpp
查看全部 -
【内联函数】用关键字inline定义,例如:
inline void fun(){ cout << "Hello" << endl; }
内联函数编译时,直接将 函数体代码和实参 代替 函数调用语句
相比普通函数,减少了函数调用和调用返回的步骤
【类内定义】:即class内定义的函数,编译器会优先将其编译为inline函数,但是inline不用写出来
【类外定义】:
1、同文件类外定义:成员函数定义在类的外面,但是跟类的定义在同一个文件中
class Car{ public: void run(); }; void Car::run(){...}
2、分文件类外定义【更常用】
在Car.h的头文件中定义了class Car
在Car.cpp中:
#include "Car.h" //必须要声明Car.h头文件,才能正确找到 void Car::run(){...}
查看全部 -
内联函数与普通函数的区别
查看全部 -
在写成员函数时
1、若不需要return,定义为void类型
2、return整型,定义为int;return字符串,定义string
查看全部 -
在private中定义数据成员
在public中决定是只读还是读写都可以
void setName(string _name){ m_strName = _name; //写 } void getName(){ return m_strName; //读 }
查看全部 -
class Car{ //如何设置只读属性 public: int getWheelCount(){ return m_iWheelCout; //在public中只能读出 } private: int m_iWheelCount; //在private中定义的轮子个数 }
查看全部 -
赋初值的必要性
查看全部 -
封装的好处
规定限制
使结果合法
查看全部
举报