三角矩阵,C ,Getters和Setter,双指针

  • 本文关键字:Setter 指针 三角 Getters c++
  • 更新时间 :
  • 英文 :


i从教授中给出了C 的程序,并被要求将结构更改为类,将int **数据私有化,然后添加getters and setters。但是,我以前从未使用过双重指针,也不知道如何进行。我所做的就是修改三角标头文件,但我什至不知道我是否正确地执行此操作。帮助您将不胜感激!

//triangle.h

#ifndef TRIANGLE_H
#define TRIANGLE_H
class Trngl{
private:
    int **data;
public:
    int size;
    void setData(int **d){**data = **d;};
    int getData(){return **data;};
};
#endif /* TRIANGLE_H */

//main.cpp

//System Libraries Here
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
//User Libraries Here
#include "Triangle.h"
//Global Constants Only, No Global Variables
//Like PI, e, Gravity, or conversions
//Function Prototypes Here
Trngl *fillStr(int);
void prntStr(Trngl *);
void destroy(Trngl *);
//Program Execution Begins Here
int main(int argc, char** argv) {
    //Set the random number seed
    srand(static_cast<unsigned int>(time(0)));
    //Declare all Variables Here
    int row=10;
    //Input or initialize values Here
    Trngl *triangle=fillStr(row);
    //Output Located Here
    prntStr(triangle);
    //Return Memory
    destroy(triangle);
    //Exit
    return 0;
}
void destroy(Trngl *tri){
    for(int row=0;row<tri->size;row++){
        delete []tri->data[row];
    }
    delete []tri->data;
    delete tri;
}
void prntStr(Trngl *tri){
    cout<<endl;
    for(int row=0;row<tri->size;row++){
        for(int col=0;col<row;col++){
            cout<<tri->data[row][col]<<" ";
        }
        cout<<endl;
    }
    cout<<endl;
}
Trngl *fillStr(int n){
    //Allocate a structure to hold the Matrix
    Trngl *tri=new Trngl;
    //Create the 2-D allocated pointer
    tri->data=new int*[n];
    for(int row=0;row<n;row++){
        tri->data[row]=new int[row+1];
    }
    tri->size=n;
    //Fill the array with values
    for(int row=0;row<n;row++){
        for(int col=0;col<row;col++){
            tri->data[row][col]=rand()%90+10;
        }
    }
    //return the Array pointer
    return tri;
}

**数据并不那么复杂,请考虑三角形的样子:0010 1120 21 22

因此,您有许多数组或 *行,但是如何存储它们?阵列对此很棒,阵列的类型是什么?它是一系列数组或作为数组是指针指针的指针。如果您不想写它,或者有点混乱,则可以使用Typedef并将其用作普通变量。

而不是集合,您可以编写一个真实的构造函数:三角形(** d)和destructor〜triangle()如上所述:请谨慎使用灾难,您想删除每个指针,而不仅仅是外部指针。

和:将属于类的原型放在标题中

最新更新