C++Primer Plus 第12章 类和动态内存分配 12.10编程练习第3题new,delete的指向深度拷贝3题

系列文章目录

例如:C++Primer Plus第十二章类和动态内存分配第3题


`提示:3. 新编写程序清单 10.7和程序清单10.8描述的 Stock 类,使之使用动态分配的内存,而不是 string类对象来存储股票名称。另外,使用重载的operator<<()定义代替show()成员函数。再使用程序清单10.9测试新的定义程序。


`提示:要学习一定要认真的学习

前言

提示:知识点概括:

new[],delete[],operator<<()


提示:以下是本篇文章正文内容,下面案例可供参考

一、情景再现

在第十章我们实现过的方法。这里用跟好的方式实现

1 头文件,原程序清单10.7

#pragma once
//stock20.h -- augmented version 
#ifndef STOCK20_H_
#define STOCK20_H_
#include<string>	
class Stock 
{
   
private:
	std::string company; //公司
	long shares;//股票数量
	double share_val;//股票单价
	double total_val;//总市值
	void set_tot()//内联函数,和inline同理,定义位于类申明中的函数自动成为内联函数
	{
   
		total_val = shares * share_val;
	}
public:
	//两个构造函数
	Stock();//默认的构造函数
	Stock(const std::string& co, long n = 0, double pr = 0.0);
	~Stock();//析构函数
	void acquire(const std::string& co, long n, double pr);
	void buy(long num, double price);
	void sell(long num, double price);
	void update(double price);
	void show()const;
	const Stock& topval(const Stock& s)const;
};
#endif // !STOCK20_H_

2 实现方法.原程序清单10.8

//stock20.cpp--augmented version
//version 20
#include<iostream>
#include"stock20.h"

//默认无参的构造函数
Stock::Stock()
{
   
	std::cout << "默认的构造函数执行\n";
	company = "no name";
	shares = 0;
	share_val = 0.0;
	total_val = 0.0;
}
Stock::Stock(const std::string& co, long n, double pr)
{
   
	std::cout << "用构造函数创建:" << co << "公司\n";
	company = co;
	if (n < 0)
	{
   
		std
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值