我正在尝试实现类原型,并正在使用成员初始化器列表。通过使用类的默认构造函数,我得到“未调用原型函数”的警告。我有两个问题:
1)为什么会出现这个问题?
2)使用构造函数时使用()
和{}
初始化变量有什么区别?
template <typename T>
class Vector {
private:
int size;
int elem_count;
T *elem;
public:
Vector() : size( 0 ), elem( new T[size] ) {};
Vector(int sz) : size{ sz }, elem{ new T[size] } {};
};
int main() {
Vector<int> vec1(); // Prototyped function not called warning
Vector<int> vec2(10); // This works
return 0;
}