如何创建父类变量数组作为继承类的私有成员

我想创建一个矩阵类,每一个成员是一小部分; 而不是浮动或int。 下面是分数类的代码。
fraction.h

class fraction{ private: int num, den; public: fraction(); fraction(int, int); fraction& operator=(const fraction&); };

Fraction.cpp

#include "fraction.h" fraction::fraction(){ num = 0; den = 0; } fraction::fraction(int a, int b){ num = a; den = b; } fraction& fraction::operator=(const fraction& lhs){ num = lhs.num; den = lhs.den; return *this; }

我如下声明矩阵类。

#include "fraction.h" class matrix:public fraction{ private: fraction **mt(int, int); fraction **unity(int, int); int sz; public: matrix(); matrix(fraction**, int); ~matrix(); };

我怎么能初始化矩阵类? 我试过很多东西,但没有人似乎工作。 这些指针就是不接受任何值。

--------------解决方案-------------

有你所定义的Matrix类没有指针。 此外,也没有理由从分数继承(矩阵中包含的级分,但它不是一个分数本身)。

为了避免指针,您可以使用C ++的载体,但它们是一维的,这样一种策略可能是矩阵线性化载体中。

#include <vector>

class Matrix { // does *not* inherit from fraction!
private:
int rows_;
int cols_;
std::vector<Fraction> data_;

public:
Matrix(int rows, int cols) : rows_(rows), cols_(cols),
data_(rows * cols) {}

const Fraction& operator()(int i, int j) const {
assert(0 <= i && i < rows_);
assert(0 <= j && j < cols_);
return data[i * cols_ + j];
}
};

Matrix m(5, 8);
cout << m(3, 1);

你需要初始化象**吨数组twoD数组指针两次:第一次,每一行; 第二,每一行,列的init

分类:C# 时间:2015-03-14 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.803 (s). 10 q(s)