我已经在类Node中创建了一个静态成员函数,并希望使用一些参数来调用该函数。如何在主函数中调用该函数?
class Node;
typedef shared_ptr<Node> SharedNode;
class Node {
Node* parent;
vector< SharedNode > children;
int value;
//limiting construction
Node(int a_value):value(a_value),parent(0){}
Node(const Node ©); //non-construction-copyable
Node& operator=(const Node& copy); //non-copyable
public:
static SharedNode create(int a_value){
return SharedNode(new Node(a_value));
}
SharedNode addChild(SharedNode child){
child->parent = this;
children.push_back(child); // First there is a typo here. (nodes.push_back is incorrent)
return child;
}
int main(){
SharedNode a1 = Node.create(1);
SharedNode b1 = Node.create(11);
SharedNode b2 = Node.create(12);
SharedNode b3 = Node.create(13);
SharedNode b21 = Node.create(221);
a1.get()->addChild(b1);
a1.get()->addChild(b2);
a1.get()->addChild(b3);
b2.get()->addChild(b21);
b2.get()->getNode(221);
int hold;
cin>>hold;
}
它给我一个错误:非法使用此类型作为表达式。
感谢大伙们!
最佳答案
使用::
operator而不是.
访问静态变量,因此应为Node::Create