第十章
1.什么是类
类是用户定义的类型的定义。类声明指定了数据将如何存储,同时指定了用来访问和操纵这些数据的方法(类成员函数)
2.类如何实现抽象,封装和数据隐藏
类表示人们可以类方法的公有接口对类对象执行的操作,这是抽象,类的数据成员可以是私有的(默认值)。这意外着只能通过成员函数来访问这些数据,这是数据隐藏。实现的具体细节(如数据表示和方法的代码)都是隐藏的,这是封装。
3.对象和类之间的关系是什么?
类定义了一种类型,包括如何使用它。对象是一个变量或其他数据对象(如由new生成的),并根据类定义被创建和使用。类和对象之间的关系同标准类型与其变量之间的关系相同
4.除了类的函数成员是函数之外,类的函数成员与类的数据成员之间的区别还有什么?
如果创建给定类的多个对象,则每个对象都有其自己的数据内存空间,但所有的对象都是用同一组成员函数(通常,方法是公有的,而数据是私有的,但这只是策略方面的问题,而不是对类的要求)。
5.定义了一个类来标识银行账户。数据成员包括储户姓名,账号(两者使用字符串表示)和存款。成员函数执行如下操作。
创建一个对象并将其初始化。
显示储户姓名,账号和存款。
存入参数指定的存款
取出参数指定的存款
请提供类声明,而不用给出方法实现
class BankAccount
{
private:
string fullname;
string accid;
double balance;
public:
BankAccount();
BankAccount(const string name, const string id, double bal);
~BankAccount()
{
cout << "我是析构函数";
}
void show_account();
void deposit(double cash); //存入参数指定的存款
void withdraw(double cash); //取出参数指定的存款
};
6.类的构造函数在何时调用?类的析构函数呢?
在创建类对象或显式调用构造函数时,类的构造函数都将被调用。当对象过期时,类的析构函数将被调用。
7.给出复习题5中银行账户类的构造函数的代码
BankAccount::BankAccount()
{
fullname = "";
accid = "";
balance = 0;
}
BankAccount::BankAccount(const string name, const string id, double bal)
{
fullname = name;
accid = id;
balance = bal;
}
8.什么是默认构造函数?拥有默认构造函数有何好处?
默认构造函数是没有参数或所有参数都有默认值的构造函数。拥有默认构造函数后,可以声明对象,而不 初始化它,即使已经定义了初始化构造函数。它还使得能够声明数组
9.修改Stock类的定义,使之包含返回各个数据成员的成员函数。注意,返回公司名的成员函数不应为修改数组提供便利,也就是说,不能简单的返回string引用。
#ifndef STOCK30_H_
#define STOCK30_H_
#include <string>
class Stock
{
private:
std::string company;
int shares;
double share_val;
double total_val;
void set_tot() {total_val = shares *share_val;}
public:
Stock() {}; //默认构造函数
Stock(const std::string &co, long n = 0, double pr = 0.0);
~Stock() {};
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;
int numshares() const {return shares;}
double shareval() const {return share_val;}
double totalval() const {return total_val;}
const std::string &co_name() const {return company;}
}
10.this和*this表示什么?文章来源:https://www.toymoban.com/news/detail-464741.html
this指针是类方法可以使用的指针,它指向用于调用方法的对象。因此,this是对象的地址, *this是对象本身文章来源地址https://www.toymoban.com/news/detail-464741.html
到了这里,关于C++primer plus习题+答案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!