C++ 基础 不能在一个类中定义另一个类的成员函数 课本5.11

//============================================================================
// 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);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值