可能重複的一個實例: Default constructor with empty brackets Instantiate class with or without parentheses? 計劃: class Foo
{
public:
Foo (int bar = 1)
{
cout << "bar=" << bar;
}
};
有人可以解釋爲什麼下面的代碼的結果是「class B :: 1」? 爲什麼派生類的虛方法使用基類的默認參數而不是他自己的?對我來說這很奇怪。提前致謝! 代碼: #include <iostream>
using namespace std;
class A
{
public:
virtual void func(int a = 1)
{
cout <<
考慮下面的代碼: #include <iostream>
class Bar
{
public:
void foo(bool b = false, std::string name = "");
};
void Bar::foo(bool b, std::string name)
{
if (!b)
{
std::cout << "b is
我有這樣的代碼: struct A{};
template<class T = A>
struct B {
void foo() {}
};
B b; //Error: missing template arguments before 'b'
//Error: expected ';' before 'b'
//More errors
b.foo()