《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; }; #endifTest.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就是类对象的地址。
人生如戏,还是戏如人生?微信公众号:传说之路
csdn博客 http://blog.csdn.net/u012175089/article/list/2