前言
C++的目标之一就是让用户使用类对象就像使用基本内置类型对象一样。
对基本内置类型而言,其初始化语法如下:
#include <iostream>
using namespace std;
int main() {
int year = 2001;
struct person{
double height;
double weigth;
};
person xiong = {
180.0 , 150.0};
cout << "OK!!!" << endl;
}
但是对于用户自定义类型而言,我们还无法适用常规的初始化语法:
#include <iostream>
#include <string>
#include "cmake-build-debug/Share.h"
using namespace std;
int main() {
Share xiong;
xiong.acquire("lenovo" , 100 , 16.6);//正确
Share xiong = {
"lenovo" , 100 , 16.6};//错误
}
究其原因,是因为Share类的数据成员访问状态是private,意味着程序不能直接访问数据成员,更不能给数据成员直接赋值了。
前面说过,对于private数据成员,只能通过类接口,也就是public成员函数进行访问。所以类专门设计了一种成员函数,来对类中的private数据成员进行赋值操作,即构造函数。
构造函数的声明
//
// Created by Administrator on 2017/3/7.
//
#ifndef PROJECT1_SHARE_H