《C++ Primer Plus(第六版)》(16)(第十章 对象和类 笔记和复习题答案)

笔记,这章是在没什么笔记

1.如果可以通过初始化,也可以通过赋值来设置对象的值,应采取初始化,通常效率会更高。

2.在函数声明后面加上const,可以确保不能再函数内更高属性值。

3.

#include <iostream>
#include "Test1.cpp"
using namespace std;

class ch
{
    int i = 1;
    int j = 2;
public:
    void show() const
    {
        cout << i << j << endl;
    }
};

int main(int argc, const char * argv[]) {
    const ch c = ch();
    c.show();
    return 0;
}
 


经常使用类,好像真的没什么不懂或者不清晰的地方要记下的。。。。。。


10.9 复习题


1.用户自己定义的数据类型,包含了数据的封装和函数


2.这道题问的真没水平。。。类的方法就是抽象,数据成员声明为私有就是数据隐藏,隐藏的细节就是封装。


3.类是一种定义,对象是实例。


4.数据是私有的,方法是共用的。


5.

Test.h

#ifndef _Test_H_
#define _Test_H_
#include <iostream>
#include <string>
using namespace std;

class Account
{
public:
	Account(const string& name, const string& id, double money);
	void show();
	void add(double m);
	void decrease(double m);
private:
	string _name;
	string _id;
	double _money;
};
#endif
Test.cpp

#include "Test.h"
#include <iostream>

using namespace std;


Account::Account(const string& name, const string& id, double money)
{
	_name = name;
	_id = id;
	_money = money;
}

void Account::show()
{
	cout << "User: " << _name << " id:" << _id << " meoney:" << _money;
}

void Account::add(double m)
{
	_money += m;
}

void Account::decrease(double m)
{
	_money -= m;
}

6.构造函数在创建对象或者显式调用构造函数的时候调用,析构函数在对象过期被注销的时候调用。


7.

Account::Account(const string& name, const string& id, double money)
{
	_name = name;
	_id = id;
	_money = money;
}

8.

没有参数或者所有的参数都有默认值的构造函数就是默认构造函数,不需要显式调用。可以声明对象而不初始化它,还可以声明数组。


9.

class Stock
{
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;
	const string& getCompany()const { return company; }
	int getShares()const { return shares; }
	double getSharesVal()const { return share_val; }
	int getTotalValue()const { return total_val; }
private:
	string company;
	int shares;
	double share_val;
	double total_val;
	void set_tot(){ total_val = shares * share_val; }
};

10.this就是指向类对象自身的指针,在对象内可以使用,*this就是类对象的地址。


















posted @ 2016-12-19 14:25  肥宝游戏  阅读(223)  评论(0编辑  收藏  举报