《C++捷径教程》读书笔记--Chapter 12--类的深入学习(第一部分)
2006-03-31 19:47
453 查看
//--《C++捷径教程》读书笔记--Chapter 12--类的深入学习(第一部分)
//--Chapter 12--类的深入学习
//--03/31/2006 Friday
//--Computer Lab
//--Liwei
//--程序#1 use friend function
#include <iostream>
using namespace std;
class myclass{
int a,b;
public:
myclass(int i, int j) { a=i; b=j; }
friend int sum( myclass x);
};
int sum( myclass x)
{
return x.a+x.b;
}
int main()
{
myclass n(3,4);
cout<<sum(n);
return 0;
}
//--程序#2 use friend function
#include <iostream>
using namespace std;
const int IDLE=0;
const int INUSE=1;
class C2;
class C1{
int status;
public:
void set_status(int state);
friend int idle(C1 a, C2 b);
};
class C2{
int status;
public:
void set_status(int state);
friend int idle(C1 a, C2 b);
};
void C1::set_status(int state)
{
status=state;
}
void C2::set_status(int state)
{
status=state;
}
int idle(C1 a, C2 b)
{
if(a.status || b.status) return 0;
else return 1;
}
int main()
{
C1 x;
C2 y;
x.set_status(IDLE);
y.set_status(IDLE);
if(idle(x,y)) cout<<"Can be used./n";
else cout<<"In use./n";
x.set_status(INUSE);
if(idle(x,y)) cout<<"Can be used./n";
else cout<<"In use./n";
return 0;
}
//--程序#3 use friend function
#include <iostream>
using namespace std;
const int IDLE=0;
const int INUSE=1;
class C2;
class C1{
int status;
public:
void set_status(int state);
int idle(C1 a, C2 b);
};
class C2{
int status;
public:
void set_status(int state);
friend int C1::idle(C1 a, C2 b);
};
void C1::set_status(int state)
{
status=state;
}
void C2::set_status(int state)
{
status=state;
}
int C1::idle(C1 a, C2 b)
{
if(a.status || b.status) return 0;
else return 1;
}
int main()
{
C1 x;
C2 y;
x.set_status(IDLE);
y.set_status(IDLE);
if(x.idle(x,y)) cout<<"Can be used./n";
else cout<<"In use./n";
x.set_status(INUSE);
if(x.idle(x,y)) cout<<"Can be used./n";
else cout<<"In use./n";
return 0;
}
//--Chapter 12--类的深入学习
//--03/31/2006 Friday
//--Computer Lab
//--Liwei
//--程序#1 use friend function
#include <iostream>
using namespace std;
class myclass{
int a,b;
public:
myclass(int i, int j) { a=i; b=j; }
friend int sum( myclass x);
};
int sum( myclass x)
{
return x.a+x.b;
}
int main()
{
myclass n(3,4);
cout<<sum(n);
return 0;
}
//--程序#2 use friend function
#include <iostream>
using namespace std;
const int IDLE=0;
const int INUSE=1;
class C2;
class C1{
int status;
public:
void set_status(int state);
friend int idle(C1 a, C2 b);
};
class C2{
int status;
public:
void set_status(int state);
friend int idle(C1 a, C2 b);
};
void C1::set_status(int state)
{
status=state;
}
void C2::set_status(int state)
{
status=state;
}
int idle(C1 a, C2 b)
{
if(a.status || b.status) return 0;
else return 1;
}
int main()
{
C1 x;
C2 y;
x.set_status(IDLE);
y.set_status(IDLE);
if(idle(x,y)) cout<<"Can be used./n";
else cout<<"In use./n";
x.set_status(INUSE);
if(idle(x,y)) cout<<"Can be used./n";
else cout<<"In use./n";
return 0;
}
//--程序#3 use friend function
#include <iostream>
using namespace std;
const int IDLE=0;
const int INUSE=1;
class C2;
class C1{
int status;
public:
void set_status(int state);
int idle(C1 a, C2 b);
};
class C2{
int status;
public:
void set_status(int state);
friend int C1::idle(C1 a, C2 b);
};
void C1::set_status(int state)
{
status=state;
}
void C2::set_status(int state)
{
status=state;
}
int C1::idle(C1 a, C2 b)
{
if(a.status || b.status) return 0;
else return 1;
}
int main()
{
C1 x;
C2 y;
x.set_status(IDLE);
y.set_status(IDLE);
if(x.idle(x,y)) cout<<"Can be used./n";
else cout<<"In use./n";
x.set_status(INUSE);
if(x.idle(x,y)) cout<<"Can be used./n";
else cout<<"In use./n";
return 0;
}
相关文章推荐
- 《C++捷径教程》读书笔记--Chapter 12--类的深入学习(完结)
- 《C++捷径教程》读书笔记--Chapter 9--更多的数据类型与运算符(第一部分)
- 《C++捷径教程》读书笔记--Chapter 6--指针(第一部分)
- 《C++捷径教程》读书笔记--Chapter 5--数组和字符串(第一部分)
- 《C++捷径教程》读书笔记--Chapter 11--类(第一部分)
- 《C++捷径教程》读书笔记--Chapter 7--函数,第一部分:基础知识(第一部分)
- 《C++捷径教程》读书笔记--Chapter 18--C++的I/O系统--12-15
- 《C++捷径教程》读书笔记--Chapter 4--程序控制语句(第一部分)
- C++ 11学习和掌握 ——《深入理解C++ 11:C++11新特性解析和应用》读书笔记(一)
- 【JavaScript 学习--12】JS深入理解调用栈,事件循环机制,回调队列
- 包建强的培训课程(12):iOS深入学习(内存管理、Block和GCD等)
- 强化学习读书笔记 - 12 - 资格痕迹(Eligibility Traces)
- 读书笔记-深入linux内核架构-Chapter 2 - part3
- 读书笔记-深入linux内核架构-Chapter 1
- C++编程思想第二版第二卷读书笔记2——深入学习string类
- 《C++捷径教程》读书笔记--Chapter 16--模板(完结)
- Maven学习总结(12)——深入理解maven生命周期和插件
- 《C++捷径教程》读书笔记--Chapter 11--类(第三部分)
- 读书笔记-深入linux内核架构-Chapter9
- 【读书笔记】【深入理解ES6】#12-代理(Proxy)和反射(Reflection)API