C++中的权限public和private
绝大多数数据成员的声明出现在成员访问说明符private之后,在成员访问说明符private之后声明的变量或者函数,只可以被声明它们的类的成员函数(或者“友元”)所访问。
C++中有四种特殊的函数,分别是(1)构造函数(2)拷贝构造函数(3)赋值函数(以“=”为例)(4)析构函数
在讲这四种函数之前我们先讨论一下关于this指针
- 在成员方法声明或者定义的时候加上this指针
- 成员方法调用的时候会自动传参this指针
- 在成员方法内使用成员变量的地方,加上this指针的解引用
下面我们将用一段代码分别进行讲解
一、构造函数:
#include<iostream>
#include<string.h>
#include<assert.h>
using namespace std;
class CGoods
{
private:
char *_name;
int _num;
double _price;
public :
CGoods(const char *name, int num, double price) //构造函数
{
//assert(NULL != name);
if(NULL != _name)
{
_name = new char[strlen(name)+1];//_name是char *型的,所以先要申请空间
strcpy_s(_name,strlen(name)+1,name);
}
else
{
_name = NULL;
}
_num = num;
_price = price;
}
(1)构造函数的写法:函数名与类名相同,没有返回值,参数列表根据需求定义
(2)构造函数的使用
- 初始化对象的时候自动调用
- 如果不自己实现构造函数,编译器会默认生成一个默认构造函数。如果自己实现了,则编译器不会生成了
- 构造函数可以重载
二、拷贝构造
- 用一个已经存在的队