错误:非法使用此类型作为表达式.C++

0 c++ inheritance static

我在类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 &copy); //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;
}
Run Code Online (Sandbox Code Playgroud)

它给了我一个错误:非法使用此类型作为表达式.感谢你们!

rer*_*run 5

使用:: 运算符访问静态不是.应该的Node::Create