C++ 基础 不能在一个类中定义另一个类的成员函数 课本5.11
来源:互联网 发布:淘宝怎么查年花费 编辑:程序博客网 时间:2024/05/03 14:58
//============================================================================
// Name : 11.cpp
// Author : zhaoming
// Version :
// Copyright : copyright to zhaoming
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
using namespace std;
class INTSET; //不完整声明或前向声明
class REALSET{
float *elems;
int card,maxcard;
public:
REALSET(INTSET &s);
int sum(REALSET s);
~REALSET(){
cout <<"aaaa";
delete elems;
}
};
class INTSET{
int *elems,card,maxcard;
//注意:不能在一个类的内部定义另一个类的构造函数,但可以声明
/*
* 课本上是这样写的
* friend REALSET::REALSET(INTSET &s)//自动成为inline函数
{
//本函数声明为INTSET的友元后,可直接访问INTSET的成员
elems = new float[maxcard = s.maxcard];
card = s.card;
for(int i = 0; i < card; i++){
elems[i] = s.elems[i];
}
}
*/
friend int sum(REALSET s)
{
s.~REALSET();
return 0;
}
friend REALSET::REALSET(INTSET &s);//自动成为inline函数
public:
INTSET(int maxcard);
~INTSET(){
delete elems;
}
int getcard(){
return card;
}
int getelems(int i){
return elems[i];
}
};
REALSET::REALSET(INTSET &s)
{
//本函数声明为INTSET的友元后,可直接访问INTSET的成员
elems = new float[maxcard = s.maxcard];
card = s.card;
for(int i = 0; i < card; i++){
elems[i] = s.elems[i];
}
}
INTSET::INTSET(int max){
elems = new int[maxcard = max];
card = 0;
}
int main()
{
INTSET iset(20);
REALSET rset(iset);
}
- C++ 基础 不能在一个类中定义另一个类的成员函数 课本5.11
- 在一个类的成员函数中调用另一个类的成员函数
- C++:成员函数实现在类定义中与在类定义外的区别
- 【c++】为什么类中静态(static)成员不能在类的定义内初始化?
- 如何在一个类中定义一个Friend类型的成员函数
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- C++模板类的成员函数定义与声明必须在一个头文件中
- 模板类成员函数的定义和声明为什么要放在一个文件中
- 【C/C++】在一个类中重载另一个类的构造函数 ----构造函数是一个特殊的操作符
- c++中可不可以在一个类中访问另一个类的私有成员?
- <C++>9.类成员函数的定义
- error C2601: “...”: 本地函数定义是非法的 && IntelliSense: 不能在成员函数的类外部重定义
- error C2601: “...”: 本地函数定义是非法的 && IntelliSense: 不能在成员函数的类外部重定义
- C++ 类的成员函数定义在.h中为什么会产生函数重定义错误?
- VC6.0中,整型const static成员不能在类的定义体中初始化.
- C++类中成员函数的定义
- C++定义类时,为什么不能在类中声明自身类型的成员变量?
- Tomcat :a configuration error occurred during startup.Please verify the preference field with ......
- iso文件用什么打开?还有iso是什么东西?
- Android4.1 Open Menu的过程
- windows日志的保护与伪造
- 服务器安全配置精华技巧
- C++ 基础 不能在一个类中定义另一个类的成员函数 课本5.11
- linux环境内存分配原理
- 在NotePad++中配置java编译环境
- AJAX简单实例(GET、POST)
- Oracle学习笔记-数据库逻辑结构
- GDB查看栈信息
- 从两个实在事例谈对房市的调控
- Windows 2003 硬盘安全设置
- Linux内存管理大图(第三稿)