嗨,大家好,我昨天開始學習C++。't'未在此範圍內聲明
我想創建依賴於我從文件中讀取的值的對象。然而它是說價值t沒有在範圍內聲明:
另外我明白,如果我做我的代碼的方式不一定是最佳實踐。作爲一般的編碼概念,我不知道我怎麼會初始化牛逼事先爲我創建的對象取決於給予
這裏的價值是代碼:
while(getline(linestream,value,',')){
if(i==0){
cout<< "Type " << value << endl;
type = value;
}
else if(i==1){
cout<< "Code " << value << endl;
code = value;
}
else if (i==2){
cout << "Count " << value << endl;
count = atoi(value.c_str());
}
else if (i ==3){
cout << "Price " << value << endl;
price = atoi(value.c_str());
}
else if(i ==4){
cout << "Other " << value << endl;
other = value;
}
i++;
if(i ==5){
if(type == "transistor"){
Transistor *t = new Transistor(code,count,price,other);
}else if (type == "IC"){
IC *t = new IC(code,count,price,other);
}else if (type == "resistor"){
Resistor *t = new Resistor(code,count,price,other);
}else if (type == "capacitor"){
Capacitor *t = new Capacitor(code,count,price,other);
}else{
Diode *t = new Diode(code,count,price,other);
}
if(counter ==0){
LinkedList list(t);
}else{
list.tailAppend(t);
}
}
}
而且所有的課,我創建潛在的對象都是從基類派生的股票項目
是'Transistor','Resistor'等某些類的所有子類(例如'Component')嗎?如果是這樣,那麼你可以在if檢查之前聲明一個'Component * t',然後根據執行的'if'語句使用多態來初始化它。 – ArchbishopOfBanterbury
是@ArchbishopOfBanterbury(愛這個名字btw)他們都是從一個基類派生出來的,但是它的抽象基類 – Blarsssss
@Brasssss沒關係,你仍然可以創建一個指向這個基類的指針,然後爲它指派一個派生的實例如你在'if'檢查中所做的那樣 - 例如:首先聲明'Base * t',然後對每個if語句執行't = new Transistor(...)'等等。 – ArchbishopOfBanterbury