笔记,这章是在没什么笔记
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就是类对象的地址。