我对这三个术语感到很困惑.
我的理解是:
在工厂模式中,没有混凝土工厂.工厂根据参数构建新对象.
在抽象工厂模式中,有多个混凝土工厂.客户必须明确地创建不同的具体工厂.
是对的吗?
还有什么区别?
此外,什么是工厂方法模式?它与工厂模式相同吗?
我的理解是int变量将0自动初始化; 但事实并非如此.下面的代码打印一个随机值.
int main ()
{
int a[10];
int i;
cout << i << endl;
for(int i = 0; i < 10; i++)
cout << a[i] << " ";
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我可以想象一种情况,其中输入参数可以是NULL,因此传递指针是首选但不是传递参考?
任何人都可以添加更多案例吗?
我刚刚注意到一个新术语pimpl成语,这个成语与Bridge设计模式有什么区别?我很困惑.
我也注意到pimpl成语总是用于交换功能,那是什么?有人可以举个例子吗?
关于受保护构造函数的一个问题 我了解到受保护的构造函数可以在派生类中使用.但是,我发现下面的代码有错误.为什么会这样?
class A
{
protected:
A(){}
};
class B: public A {
public:
B() {
A* f=new A(); // Why it is not working here
}
};
Run Code Online (Sandbox Code Playgroud) 我记得堆可以用来搜索元素是否在其中,具有O(logN)时间复杂度.但突然间我无法得到细节.我只能找到getmin delete add等等.
任何人都可以暗示一下吗?
我在一篇文章中发现"static_cast用于非多态类型转换,而dynamic_cast用于多态类型转换".我知道int和double不是多态类型.
但是,我还发现static_cast可以在基类和派生类之间使用.这里的多态类型是什么意思?有人说多态类型意味着具有虚函数的基类.是对的吗?这是唯一的情况吗?还有什么?任何人都可以为我详细说明这个吗?
我对虚拟对象大小有一些疑问.
1)虚函数
class A {
public:
int a;
virtual void v();
}
Run Code Online (Sandbox Code Playgroud)
A类的大小是8字节....一个整数(4个字节)加上一个虚拟指针(4个字节)很清楚!
class B: public A{
public:
int b;
virtual void w();
}
Run Code Online (Sandbox Code Playgroud)
B级的大小是多少?我使用sizeof B测试,它打印12
这是否意味着只有一个vptr,即使B类和A类都有虚函数?为什么只有一个vptr?
class A {
public:
int a;
virtual void v();
};
class B {
public:
int b;
virtual void w();
};
class C : public A, public B {
public:
int c;
virtual void x();
};
Run Code Online (Sandbox Code Playgroud)
C的大小是20 ........
似乎在这种情况下,两个vptrs在布局中......这是怎么发生的?我认为两个vptrs一个用于A类,另一个用于B类....所以没有vptr用于C类的虚函数?
我的问题是,关于继承中vptrs数量的规则是什么?
2)虚拟继承
class A {
public:
int a;
virtual void v();
};
class B: virtual …Run Code Online (Sandbox Code Playgroud) 我有std::stringstream对象ss1.现在,我想从这个创建另一个副本.
我试试这个:
std::stringstream ss2 = ss1;
Run Code Online (Sandbox Code Playgroud)
要么:
std::stringstream ss2(ss1)
Run Code Online (Sandbox Code Playgroud)
既不起作用
错误消息是这样的:
无法从bsl :: basic_stringstream,bsl :: allocator> :: basic_stringstream(const bsl :: basic_stringstream,bsl :: allocator>&)访问std :: ios :: basic_ios(const std :: ios&).
c++ ×8
algorithm ×1
big-o ×1
constructor ×1
factory ×1
heap ×1
objectsize ×1
protected ×1
stringstream ×1
variables ×1