如果有人问过这个问题,请原谅我,我没有找到我的具体问题的任何答案。我正在创建的库中有一个类,我希望某些类能够创建和销毁,而其他类能够访问其他公共(public)函数。拥有一个friendclass也不是我想要的,因为friend类将可以访问我不想要的成员变量和成员函数。我偶然发现thisidiom这几乎可以工作,除了析构函数,因为它不能接受额外的参数。有了这个成语,我得到:classB;classA{public:classLifecycleKey{private:LifecycleKey(){}friendclassB;};A(LifecycleKey);//Nowonlyclass