#include "pch.h"
#include <iostream>
using namespace std;
/*
类的构造函数与析构函数详解
*/
//创建stock类
class stock {
private :
string company;
long shares;
double share_val;
double total_val;
void set_tot() { total_val = shares * share_val; }
public:
void acquire(const string &co, long n, double pr);
void buy(long num, double price);
void sell(long num, double price);
void update(double peice);
stock show(stock );
//构造函数声明
stock(const string &co = "Error", long n = 0, double pri = 0);
//stock();
~stock() {
}
};
//构造函数定义
stock::stock(const string &co, long n, double pri) {
company = co;
if (n < 0) {
std::cerr << "none";
shares = 0;
}
else shares = n;
share_val = pri;
set_tot();
}
stock stock ::show(stock obj)
{
if (obj.shares >this->shares )
return *this;//this 指针指向当前对象;
}
void main() {
//使用构造函数:
stock xiaoming = stock("xiaoli", 1, 1);
//隐式调用构造函数
stock xiaoming1("xiaoli", 2, 2);
//使用new运算符动态调用构造函数
stock *newsto = new stock("newstock", 3, 3);//动态创建一个对象,并将对象地址付给对象指针
//默认构造函数,没有提供构造函数的时候,创建对象时调用默认构造函数
//提供了构造函数之后,必须显式声明默认构造函数;否则下面的声明出错;
stock moren;
//注意区分:
stock first("zt", 1, 1);//调用构造函数创建对象
stock first();//返回stock对象的函数
stock second;//调用默认构造函数创建的对象
//C++ 列表初始化:方括号中的参数与类的某个构造函数的参数列表匹配即可进行列表初始化;
stock list = { "list",1,1 };
}
复制构造函数