我得到了第一个尺寸,但无法为我的其他构造函数设置尺寸

I got the first size working but can't set the size for my other constructors

我如何使我的模板 header 找到所有 myvecs 的大小第一个设置为零如果没有构造函数它工作但我不知道如何为 myvecB 设置 10尺寸。 5 被设置为 myvecC 的大小。 myvecD大小设置为6。

main.cpp

int main()
{
 myclass<int> myvecA;
 myclass<int> myvecB(10);
 myclass<int> myvecC(5,-9);
 myclass<string> myvecD(6, "Hi");

 cout << "A size: " << myvecA.size() << endl;
 cout << "B size: " << myvecB.size() << endl;
 cout << "C size: " << myvecC.size() << endl;
 cout << "D size: " << myvecD.size() << endl;
system("Pause");
return 0;
}

我的模板class

#include<iostream>

template <class C>
 class myclass{

public:
 myclass(int x);{
    sizearr = x;}

 explicit myclass() : sizearr(0) {}

 V size();

private:

 V sizearr;

};

template <class V>
 V myclass<V>::size() {
   return sizearr;
}

您显示的代码充满错误,无法编译。试试这个:

template <class V>
class myclass {    
public:
    myclass() : sizearr(0) {}
    myclass(int x) : sizearr(x) {}
    myclass(int x, const V &v) : sizearr(x) {}

    int size();

private:    
    int sizearr;    
};

template <class V>
int myclass<V>::size() {
    return sizearr;
}

#include <iostream>
#include <string>

using namespace std;

int main()
{
    myclass<int> myvecA;
    myclass<int> myvecB(10);
    myclass<int> myvecC(5, -9);
    myclass<string> myvecD(6, "Hi");

    cout << "A size: " << myvecA.size() << endl;
    cout << "B size: " << myvecB.size() << endl;
    cout << "C size: " << myvecC.size() << endl;
    cout << "D size: " << myvecD.size() << endl;
    system("Pause");
    return 0;
}