題1
class Object {
public:
Object() { init(); }
virtual void init() {}
};
class GameObject : public Object {
public:
virtual void init() { m_TypeName = "GameObject"; }
std::string m_TypeName;
};
int main()
{
GameObject gameObject;
std::cout << "GameObject type name is " << gameObject.m_TypeName << std::endl;
return 0;
}
請問這段代碼的運行結果為何? 產生這樣結果的原因是? 如何修改能夠使代碼符合預期?
題2
float zero = 0, three = 3, four = 4;
class Complex
{
public:
float &x, &y;
Complex() : x(zero), y(zero) {}
Complex(float& z) : x(y), y(z) {}
Complex(float& _x, float& _y) : x(_x), y(_y) {}
};
float square(const float& x)
{
return x * x;
}
float absValue(Complex& c)
{
return sqrt(square(c.x) + square(c.y));
}
int main()
{
Complex c(four);
printf("absolute value is %g\n", absValue(c));
return 0;
}
請問這段代碼的運行結果為何? 產生這樣結果的原因是? 如何修正?
題3
某樹形結構節點定義如下:
class Node
{
public:
const char* m_FriendlyName;
Node* m_ParentNode;
Node* m_LeftChildNode;
Node* m_RightChildNode;
};
void printNode(Node* p_Node)
{
if (p_Node != 0)
std::cout << "Node: " << p_Node->m_FriendlyName << std::endl;
}
請撰寫代碼: 1, 通過呼叫printNode函式列印樹結構的所有節點; 2, 按照層級順序列印樹結構的所有節點
uj5u.com熱心網友回復:
題1: 如何修改能夠使代碼符合預期?什么預期?std::string m_TypeName;放到基類Object里面
題2:參考的都是一個數
題3:不寫了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/107086.html
標籤:基礎類
