如果一個代碼塊已經離開(如this question中所述),我不確定在開關實例內部實例化的對象或if條件將不再存在。但是,什麼是根據例如實例化對象的正確方式?用戶輸入?我相信,人們可以從什麼我看到的例子(笨拙地)試圖做:重新訪問開關內部的對象實例(C++)
class triangle
{
public:
static const int dimension = 2;
};
class tetrahedron
{
public:
static const int dimension = 3;
};
template<class T>
class element
{
public:
int getDimension()
{
return T::dimension;
}
};
int main()
{
int elementType;
std::cout<< "Enter 1 for triangle or 2 for tet: "
std::cin >> elementType;
switch(elementType)
{
case 1:
{
element<triangle> myElementFile;
break;
}
case 2:
{
element<tetrahedron> myElementFile;
break;
}
}
// I want to use myElementFile further, but it does not exist here
std::cout<< "The dimension is: " << myElementFile.getDimension(); //this won't work
return 0;
}
我不知道是否使用類作爲「容器」,用於存儲有關不同元素信息的總體方針然後喂他們到一個不同的班是最佳的,但我現在應該堅持下去,因爲我被告知。 :)我一般是新來的c + +和OOP。謝謝你的提示!
+1比我的更完整的答案! – Steger
因爲'element'是一個指針,我不必使用'element-> getDimension()'而不是'element.getDimension()'?這樣,並且在類定義之後包含分號後,我才能正常工作。 – FliegenderZirkus
你是對的,我爲這個錯誤感到抱歉 –