小编use*_*584的帖子

c ++赋值运算符重载

大家好我正在尝试为这个类编写一个赋值运算符,所以我可以将这样的数组赋给int[] = {0, 1, 2, 3}我的Tableau类

原本我想这样做

Tableau<T>& operator=(T arr[])
{
 return Tableau(tab, sizeofarray);
}
Run Code Online (Sandbox Code Playgroud)

因为我已经写了一个构造函数,它接受数组和大小作为参数

我遇到了一个问题与数组的大小我不知道如何找到它我怎么能找到数组的大小或有更好的方法来做到这一点

template<typename T>
class Tableau
{ 
public:
Tableau(int s = 0) : size(s), ptr(new T[size])
{
    for (int i = 0; i < size; i++)
    {
        ptr[i] = 0;
    }
}
Tableau(T tab[], int s = 0) : size(s), ptr(new T[size])
{
    for (int i = 0; i < size; i++)
    {
        ptr[i] = tab[i];
    }
}

~Tableau()
{
    delete[] ptr;
} …
Run Code Online (Sandbox Code Playgroud)

c++ arrays templates variable-assignment operator-keyword

0
推荐指数
1
解决办法
149
查看次数