我在評估數值操作的這段代碼時遇到了麻煩。我試圖尋找,但沒有答案似乎有幫助。通函和循環引用
基類來表示的操作是:
Operacija.h:
#pragma once
#include <iostream>
using namespace std;
class Operacija
{
protected:
char* naziv;
int drugiO;
Operacija* suprotna;
public:
Operacija* retOp() { return this->suprotna; }
int retD() { return this->drugiO; }
void printOp()
{
cout << "Ime operacije: " << this->naziv << endl;
cout << "Drugi operand: " << this->drugiO << endl;
cout << "Ime suprotne operacije: " << this->suprotna->naziv << endl;
}
virtual int DoOperation(int op1, int op2) = 0;
};
此導出的類是乘法:
Mnozenje.h:
//this is .h for 1st class
#pragma once
#include "Operacija.h"
#include "Deljenje.h"
class Mnozenje : public Operacija
{
public:
Mnozenje(int b);
int DoOperation(int op1, int op2);
};
Mnozenje.cpp:
#include "Deljenje.h"
#include "Mnozenje.h"
class Deljenje;
Mnozenje::Mnozenje(int b)
{
Deljenje* a = new Deljenje(b);
naziv = "Mnozenje";
suprotna = a;
if (b == 0)
{
cout << "operand ne sme biti 0, stoga je stavljen na ";
cout << "default tj. postavljen na vrednost 1!" << endl;
drugiO = 1;
}
else
drugiO = b;
}
int Mnozenje::DoOperation(int op1, int op2)
{
int a = 0;
a = op1 * op2;
return a;
}
這派生類是用於劃分:
Deljenje.h:
#pragma once
#include "Operacija.h"
#include "Mnozenje.h"
class Deljenje : public Operacija
{
public:
Deljenje(int a);
int DoOperation(int op1, int op2);
};
Deljenje.cpp:
#include "Deljenje.h"
#include "Mnozenje.h"
class Mnozenje;
Deljenje::Deljenje(int a)
{
Mnozenje* b = new Mnozenje(a);
naziv = "Deljenje";
suprotna = b;
if (a == 0)
{
cout << "operand ne sme biti 0, stoga je stavljen na default tj. postavljen na vrednost 1!" << endl;
drugiO = 1;
}
else
drugiO = a;
}
int Deljenje::DoOperation(int op1, int op2)
{
int a = 0;
a = op1/op2;
return a;
}
我明白爲什麼這不起作用,並且我嘗試了只聲明指針而不是初始化suprotna
成員Mnozenje
和Deljenje
。但我有另一個類是一個Operacija
類型的數組的容器,我不能有未初始化的指針,因爲我需要使用suprotna
調用一些其他函數。
_「我這麼着急,我的考試時間在10-12小時。」__那麼,StackOverflow並不意味着成爲通過考試的最後一招!也請看看這個可能的重複您的問題請:http://stackoverflow.com/questions/625799/resolve-circular-dependencies-in-c –
我只是指出,以證明任何不清楚等等,這是就像其他任何問題一樣。感謝提示! :) – MilanMarkovicDrmr
雖然這是由SO的政策判斷的低質量問題。無論從你的角度來看,它得到回答似乎有多緊迫。 StackOverflow用於設置長期有效的問答格式,而不是作爲您的個人幫助臺! –