由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 问个disable copy constructor的问题
相关主题
question about Design Patternspthread_create inside a constructor
问个c++问题问个local class的问题
C++ 11问题:emplace_back()问个C++的operator conversation function问题
c++的一个诡异问题,高手请进问个javascript的问题
大家觉得C++复杂在哪里?请教几个C++问题
C++问题,confusing...Synthesized Constructor到底什么意思?
C++: exception: out-of-order execution?[合集] 又学了一招
问一个constructor的问题 (转载)请教个Bloomberg 的 C++ 题目
相关话题的讨论汇总
话题: class话题: ptr话题: val话题: other
进入Programming版参与讨论
1 (共1页)
c***z
发帖数: 6348
1
按照一般的做法,我在class A里面declare了private的copy constructor, 没有给
definition.
然后我照此处理class B, 可是B里面包括一个指向A的指针, 我得到了这个error:
cannot access private members defined in B
(还有一个error指向xmemory的208行, 就是new那行
template
void construct(pointer _Ptr, _Other&& _Val)
{ // construct object at _Ptr with value _Val
::new ((void _FARQ *)_Ptr) _Ty(_STD forward<_Other>(_Val));
})
是不是因为我把A的copy constructor禁了? 请问有什么办法解决么? 谢谢各位大侠!
b*******s
发帖数: 5216
2
按你的描述,一点问题都没有,我用的代码如下,用g++编译的
class A
{
private:
A(const A&);
A& operator= (const A&);
};
class B
{
private:
A* pA;
};
int main()
{
B b;
return 0;
}
如果你是试图去初始化pA,最好你显式定义一个A的构造器,带参的拷贝构造器一声明
,就把缺省构造器隐藏了
G*****7
发帖数: 1759
3
not directly answering your question, but a c++11-compliant compiler such as
gcc/clang/icl has provided the syntax sugar of "= delete". that ought to
give you more diagonostic error messages wrt cp-ctor.
instead of
class foo
{
foo(const foo &);
}
you could do
class foo
{
foo(const foo &) = delete;
}

【在 c***z 的大作中提到】
: 按照一般的做法,我在class A里面declare了private的copy constructor, 没有给
: definition.
: 然后我照此处理class B, 可是B里面包括一个指向A的指针, 我得到了这个error:
: cannot access private members defined in B
: (还有一个error指向xmemory的208行, 就是new那行
: template
: void construct(pointer _Ptr, _Other&& _Val)
: { // construct object at _Ptr with value _Val
: ::new ((void _FARQ *)_Ptr) _Ty(_STD forward<_Other>(_Val));
: })

h**********c
发帖数: 4120
4
that is the job of factory pattern.
simply put a public static member function of the class that fabricates
instances of that class.
Viewer discretion advised. I don't disambiguate any mis-conception.
1 (共1页)
进入Programming版参与讨论
相关主题
请教个Bloomberg 的 C++ 题目大家觉得C++复杂在哪里?
Is the order of initialization a, b, c or c, b, a?C++问题,confusing...
一个c++ constructor的问题, thanksC++: exception: out-of-order execution?
c++ question问一个constructor的问题 (转载)
question about Design Patternspthread_create inside a constructor
问个c++问题问个local class的问题
C++ 11问题:emplace_back()问个C++的operator conversation function问题
c++的一个诡异问题,高手请进问个javascript的问题
相关话题的讨论汇总
话题: class话题: ptr话题: val话题: other