#include<iostream>
#include<vector>
using namespace std;
typedef double Money;
string bal;
class Account{
public:
typedef double Money;
//编译器会通过,但是这样是错的
//编译器只会从类里面找,再到外面去找;类外声明的类型名字在类内不能重新声明
Money balance() {return bal;}
private:
Money bal;
};
/////////////////////////////////////////////////
struct X{
friend void f() {
//友元函数可以定义在类的内部
}
X() {f(); }//错误,f()未初始化
void g();
void h();
}
/////////////////////////////////////////////////////////
class Screen{
friend class Window_mgr;
friend void Window_mgr::clear(ScreenIndex);
//首先定义window_mgr类,然后其中声明clear函数,但不能定义
//节虾类定义Screen类,和友元函数声明
//最后定义clear,此时才可以使用Screen的成员
//friend指定友元类可以让友元类来调用Screen的任意成员
}
//////////////////////////////////////////////
class Window_mgr{
public:
using ScreenIndex = vector<Screen>::size_type;
//vector<T> v 初始化一个空向量,默认初始化
//vector<T> v2(v) 拷贝初始化
//vector<T> v3(n,val) 初始化为n个相同元素的向量,重复初始化
//vector<T> v4(n) 初始化一个包含n个元素的向量
//vector<T> v5={a,b,c}列表初始化
//vector<T> v6{a,b,c}列表初始化等价形式
//v.push_back向向量尾部添加元素
//v.empty() 返回bool类型的值,用于判断v中是否不含任何元素
//v.size() 返回int类型的值,用于判断元素的个数
//v[i] 返回引用类型的值,用于给出第i个元素的引用
//v1 = v2 替换初始化
//v1 == v2 判断两个向量的元素值和元素个数是否相同
//decltype ()用于返回括号中运算符的存储类型
//v[i] 要使用索引,首先得让v中有元素,否则会出错
//while(cin >> a)
void clear(ScreenIndex);
};
c++ primer 学习记录(2)
猜你喜欢
转载自blog.csdn.net/AIGNl/article/details/104355275
今日推荐
周排行