我偶然发现了一个非常有趣的问题。我不是要求解决这个问题,只是建议如何继续我的代码,我想知道派生类是否继承了基类的朋友。
这是问题所在:
类矩阵,类数组的朋友是类的基类 diagonal_matrix。派生类必须包含参数化 构造函数通过它来突出参数的传输 从基类,析构函数和方法到构造函数 检查矩阵是否为正方形和对角线(所有其他元素 而来自主对角线的那些等于零)。 说明虚函数的概念(纯粹的,如果它更自然 在实施中。)
这是我到目前为止所写的内容(今天关于如何继续)并不是很有创意:
#include <iostream>
using namespace std;
class arry
{
private:
int *vec;
int n;
public:
int i,nrelem;
arry(){};
~arry();
void readArray(int);
};
arry::~arry()
{
n=0;
delete [] vec;
}
void arry::readArray(int elem)
{
n=elem;
vec=new int[n];
for(i=1;i<=elem;i++)
{
cout<<"vec["<<i<<"]=";
cin>>vec[i];
}
}
class matrix
{
public:
friend class arry;
matrix(int , int);
~matrix();
};
int main()
{
return 0;
}
答案 0 :(得分:1)
class array的朋友是类diagonal_matrix 的基类
班级array
没有朋友。这个班级array
是班级matrix
的朋友,因为它已经说明了<{1}}
matrix
你要求
关于如何继续我的代码的建议
从在课堂class matrix
{
public:
friend class arry; // this is my friend
matrix(int , int);
~matrix();
};
宣布友谊开始。
我想知道派生类是否继承了朋友 基类
如果基类声明array
为朋友,则它不是派生类的朋友,除非此派生类也将class A
声明为朋友。
C ++标准版n3337 § 11.3 / 10好友
友谊既不是遗传也不是传递。