一:让类模板的某个实例成为友元。

#include <iostream>
#include <vector>
#include <list>
using namespace std;
#pragma warning(disable : 4996) template <typename T> class B; //声明
template <typename T>
class A
{friend class B<int>;  //针对int类型的类B,
private:int data;
};
template <typename T>
class B
{public:void callfun(){A<int> p;p.data = 10;  cout << p.data << endl;}
};
int main()
{B<int> obj;obj.callfun();return 0;
}

二:类模板成为友元类模板。

#include <iostream>
#include <vector>
using namespace std;
#pragma warning(disable : 4996)
template <typename T>
class A
{template <typename T>friend class B;
private:int data;
};
template <typename T>
class B
{public:void callfun(){A<int> p;p.data = 10;  cout << p.data << endl;}
};int main()
{B<long> obj;obj.callfun();return 0;
}

三:让类型模板参数成为友元类,cpp11。

#include <iostream>
#include <vector>
using namespace std;
#pragma warning(disable : 4996) template <typename T>
class A
{friend T; //cpp11
private:int data;
};
class B
{public:void call(){A<B> obj;obj.data = 10;cout << obj.data << endl;}
};
int main()
{B b;b.call();return 0;
}

类模板中的友元,友元类相关推荐

  1. C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)

    C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...

  2. c++模板---3(类模板碰到继承问题,类模板类外实现,类模板与友元函数)

    类模板碰到继承问题 基类如果是模板类,必须让子类告诉编译器 基类中的T到底是什么类型 如果不告诉,那么无法分配内存,编译不过 利用参数列表class Child :public Base<int ...

  3. 类模板里面的函数写在类模板里面和写在类模板的外面,且在1个.cpp文件中

    和类一样,类模板里面声明的函数,其函数体写在类里面和外面都行,但是有一点需要注意:1.用友元函数重载<< 或 >>运算符,函数声明写在类模板里面,函数实现写在类模板外面,要在函 ...

  4. C++17尝鲜:类模板中的模板参数自动推导

    目录 模板参数自动推导 示例 自定义类模板中的应用 Automatic deduction guides(自动推断向导) 模板参数自动推导 在C++17之前,类模板构造器的模板参数是不能像函数模板的模 ...

  5. C++提高部分_C++类模板中成员函数的创建时机---C++语言工作笔记089

    然后我们再来看类模板中成员函数的创建时机是什么时候 可以看到,普通类中的成员函数一开始就可以创建了, 类模板中的成员函数在调用时才创建. 我们写个例子看看,可以看到我们写了一个Person1类,然后 ...

  6. C++类模板中的模板函数

    在C++中类模板中可以嵌套函数模板,但是在使用时候有些注意事项如下: 一.如果类模板中参数为template<typename T>,在函数模板中,函数的不同模板名字是可以重载的,如tem ...

  7. C++模板笔记十:类模板案例:通用数组类

    案例描述: 实现一个通用的数组类,要求如下: 可以对内置数据类型以及自定义数据类型的数据进行存储. 将数组中的数据存储到堆区 构造函数中可以传入数组的容量 提供对应的拷贝构造函数以及operator= ...

  8. 类模板,多种类型的类模板,自定义类模板,类模板的默认类型,数组的模板实现,友元和类模板,友元函数,类模板与静态变量,类模板与普通类之间互相继承,类模板作为模板参数,类嵌套,类模板嵌套,类包装器

     1.第一个最简单的类模板案例 #include "mainwindow.h" #include <QApplication> #include <QPush ...

  9. C++类模板中的static成员

    从类模板实例化的每一个模板类有自己的类模板数据成员,该模板的所有对象共享一个static数据成员. 代码如下: #include <iostream> using namespace st ...

最新文章

  1. 写一个关于github简历远程仓库的总结
  2. 自整理IE6,IE7,IE8,Firefox兼容方案。。。
  3. Nginx模块之———— RTMP 模块的在线统计功能 stat 数据流数据的获取(不同节点则获取的方式不同)...
  4. hdu 2155(dp)
  5. 服务器如何返回429状态,Instagram远程服务器返回一个错误:(429)UNKNOWN STATUS CODE...
  6. MySQL中的常用函数
  7. Bootstrap3栅格系统布局实例
  8. Android 系统(173)---Android中图片的三级缓存
  9. 理解和使用 Unity UI 系统(canvas和CanvasScaler )
  10. Ruby First
  11. nologging mysql_oraclenologgingoperation
  12. JavaEE实现图书管理系统
  13. Android闹钟TimePicker,android – TimePicker getHours(),API 15中的getMinutes
  14. 工作流:如何将Word尾注转换为普通文本格式
  15. 在线数据图表制作-FineReport文本控件
  16. 网页开发学习(一):制作一份邀请函
  17. 超详细的卷积后大小的计算公式
  18. 20个Linux服务器性能调优技巧
  19. matlab验证采样定理
  20. 【OCM】Oracle 10g OCA-OCP-OCM 证书体系展示,纪念2012

热门文章

  1. 轩小陌的Python笔记-day28 索引、函数及存储过程
  2. 【06月05日】A股滚动市净率PB历史新低排名
  3. App Inventor 2 题库设计制作流程
  4. linux系统正常的运行状态是,一种用于监控Linux系统运行状态的监控系统及方法...
  5. HIL测试系统的构建
  6. Python开发中的接口详解和使用方法
  7. [JSTL]标签的使用
  8. 云服务器修改虚拟内存,云服务器可以设置虚拟内存
  9. Windows下编译Android所需的FFmpeg库(小白)
  10. 2、JavaScript快速入门