Tembel hesaplamalar yaparak sınıf oluşturmaya çalışıyorum. Bu yüzden önceden hesaplanmış değişkenleri tutmak için yapıya ihtiyacım var ve bu sınıfı isimsiz isim alanına koymak istiyorum (global kapsamı kirletmek istemiyorum). İşte ne istiyorum açıklayan asgari kodudur: calculator.h
:Adlandırılmamış ad alanında bulunan sınıf bildirimi nasıl iletilir
#ifndef CALCULATOR_H
#define CALCULATOR_H
class PrevCalc;
class Calculator
{
public:
Calculator();
PrevCalc* prevCalc;
};
#endif // CALCULATOR_H
calculator.cpp
:
#include "calculator.h"
namespace{
struct PrevCalc{
double prevA = -1;
double prevB = -1;
double prevC = -1;
};
}
Calculator::Calculator()
{
prevCalc = new PrevCalc();
}
Tabii ki bir hata expected type-specifier before 'PrevCalc'
verir ve ben ad olmadan PrevCalc
tanımlarsanız her şey çalışıyor. Sorum
Anonim ad kesinlikle yanlış bir tasarımdır. –
Anonim ad alanları, kapsamı dosya kapsamıyla sınırlandırmak için ** amaçlanmıştır **. Adlandırılmış bir ad alanı, gereksinimlerinize daha iyi uyabilir. – Downvoter
Neden 'PrevCalc'' Hesap makinesinin iç içe geçmiş yapısını yapmıyorsunuz? Bunu dinamik olarak ayırmanız gerekmeyecek. –