模板类的复制构造函数

2023-12-02

我读到模板 copy-con 永远不是默认的复制构造函数,并且模板赋值操作永远不是复制赋值运算符。

我不明白为什么需要这个限制,并立即上网 ideone 并返回一个测试程序但在这里,复制构造函数永远不会在进一步谷歌搜索时被调用,我遇到了模板化构造函数并尝试过,但它仍然从不调用复制构造函数。

#include <iostream>
using namespace std;

template <typename T> class tt
{
    public :
    tt()
    {
        std::cout << std::endl << "   CONSTRUCTOR" << std::endl;
    }
    template <typename U> const tt<T>& operator=(const tt<U>& that){std::cout << std::endl << "   OPERATOR" << std::endl;}
    template <typename U> tt(const tt<U>& that)
    {
        std::cout << std::endl << "    COPY CONSTRUCTOR" << std::endl;
    }
};


tt<int> test(void)
{
    std::cout << std::endl << "      INSIDE " << std::endl; tt<int> a; return a;
}

int main() {
    // your code goes here
    tt<int> a ; a = test();

    return 0;
}

有人可以向我解释一下施加此限制的全部原因以及如何编写模板类的复制构造函数。

Thanks


我无法评论为什么会这样,但以下是为类模板编写复制构造函数和赋值运算符的方法:

    template <class T>
    class A
    {
      public:
        A(const A &){}
        A & operator=(const A& a){return *this;}
    };

就是这样。
这里的技巧是即使A是一个模板,当您在类中将其引用为A(例如在函数签名中)它被视为完整类型A<T>.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

模板类的复制构造函数 的相关文章

随机推荐

  • 使用 PyMongo 将 Pandas Dataframe 插入 mongodb

    使用将 pandas DataFrame 插入 mongodb 的最快方法是什么PyMongo Attempts db myCollection insert df to dict 给出了一个错误 InvalidDocument docum
  • 使用标签应用动态过滤器

    我有一个元素列表 使用 ng repeat 显示在表格中 我想应用使用标签添加的动态过滤器 ng 标签输入 此标签输入生成动态标签 我想将其用作过滤器 这里是plunk我创造了 如何使用这些标签中的条目来创建过滤器 对于我尝试过的单个元素
  • 使用 VBA 将网站打印为 PDF

    我正在尝试使用 VBA 将 HTML 保存为 PDF 我不知道如何检查默认打印机是什么 将其更改为 Microsoft Print to PDF 然后返回旧打印机 下面是我的代码 我在 Google 上搜索一些内容 然后在第一个 Googl
  • 有没有办法自动在所有 C 或 CPP 文件中包含头文件? [复制]

    这个问题在这里已经有答案了 可能的重复 如何通过makefile包含头文件 我正在使用 gcc 来编译我的代码 我也有一些 make 文件 我可以告诉编译器包含一个特定的头文件以自动包含在所有 CPP 文件中吗 我怎样才能做到这一点 添加适
  • 根据另一个值存储数组的项目

    我有一个名为 Catalog 的数组 其中包含 4 个项目 packageid dataid categoryid 和 datapackage 我想做的就是推入数组dataids其项目的所有 dataidpackageid等于package
  • 使用 SwingWorker 和 Timer 在标签上显示时间?

    我想要一个显示当前时间并每秒刷新的时钟 我正在使用的代码是 int timeDelay 1000 ActionListener time time new ActionListener Override public void action
  • MemoryStream 中的 UWP BitmapImage SetSource 挂起

    在我的 UWP 应用程序中 我以 byte 的形式将图像存储在 SQLite 数据库中 然后 当我从数据库检索对象时 我将它们绑定到具有图像控件的 GridView 数据模板 由于我无法将图像的源直接绑定到数组 因此我在对象的类中创建了一个
  • 如何从 jQuery 的 $.ajax() 函数调用 servlet

    我试图从 jQuery 的 ajax 函数调用 servlet 目前 我认为我什至没有调用 servlet 或向其传递参数 但是大量谷歌搜索似乎没有帮助 有任何想法吗 这是我的html
  • 这是使用浮点值进行输入验证的正确方法吗?

    在花费了大量时间研究输入验证之后 我结合了一些想法并提出了这个 检查字符串是否有效的函数double bool isDouble double destination string source 64 bit bool goodValue
  • 如何在 Groovy 中创建和访问全局变量?

    我需要在一个方法中的变量中存储一个值 然后需要在另一个方法或闭包中使用该变量中的该值 我如何分享这个价值 在 Groovy 脚本中 作用域可能与预期不同 这是因为 Groovy 脚本本身就是一个具有运行代码方法的类 但这都是在运行时完成的
  • SSIS 包在调试时立即取消

    我有一个相当简单的 SSIS 包 我已经多次使用它来将制表符分隔的文件导入到数据库中的单个表中 我将新的源文件附加到包中并尝试运行该包 包开始了 cmd 提示符会短暂出现 然后消失 然后该进程在平面文件源组件上退出 输出显示如下 SSIS
  • 有没有办法告诉 crossfilter 将数组元素视为单独的记录,而不是将整个数组视为单个键?

    我有一个数据集 其中一些字段值是数组 我想使用 crossfilter 和 d3 js 或 dc js 来显示每个值在数据集中出现的次数的直方图 这是一个例子 var data key KEY 1 tags tag1 tag2 key KE
  • 如何在 LayoutAnchorable AvalonDock 2 中放置窗口实例

    我正在将 WPF C 应用程序 不是 MVVM 中的 AvalonDock 从 1 3 升级到 2 0 在 1 3 中 只要使用 DockableContent 我就可以放置自定义窗口 XAML
  • 如何使用 ctypes 将 Python 列表列表转换为 C 数组?

    正如这里所见如何使用 ctypes 将 Python 列表转换为 C 数组 此代码将获取一个 Python 数组并将其转换为 C 数组 import ctypes arr ctypes c int len pyarr pyarr 对于列表的
  • 使用 get_Keys() 方法进行集合是否正确

    与此问题相关 我可以将名为 keys 的键添加到哈希表而不覆盖 keys 成员吗 我实际上经常使用get Keys method作为推荐的PSBase property只会转移问题 换句话说 在解决方案如下的情况下 对于未知的目录键列表 此
  • Numpy 检查两个数组的元素近似相等

    我有两个带有浮点值的 numpy 数组 我试图找到数字大致相等的索引 浮点比较 所以像这样 x np random rand 3 y np random rand 3 x 2 y 2 Do the comparison and it sho
  • UITableView 单元格中的 UITextField 返回 null

    我已经在这件事上用头撞墙已经有一段时间了 非常感谢任何意见或指示 因此 目标是从表中的文本字段创建登录表单 该用户信息一旦收集 将被传递到单独视图控制器中的数组 以便可以存储在 收藏夹 列表中 因此 我创建了看起来很棒的表单 但是当我控制台
  • 如何配置 Zend_Form 使用数组表示法?

    我在配置 Zend Form 时遇到困难 我有一个 Zend Form 子类 该表格包含一些必需信息和一些附加信息 我希望可以通过数组访问附加信息 提交的数据将如下所示 formData required1 formData require
  • 在 C# 中创建接口实例

    我正在 C 中使用 MS Excel 互操作 但我不明白这行特定的代码是如何工作的 var excel new Microsoft Office Interop Excel Application 其中 Microsoft Office I
  • 模板类的复制构造函数

    我读到模板 copy con 永远不是默认的复制构造函数 并且模板赋值操作永远不是复制赋值运算符 我不明白为什么需要这个限制 并立即上网 ideone 并返回一个测试程序但在这里 复制构造函数永远不会在进一步谷歌搜索时被调用 我遇到了模板化