当前位置: 首页 > news >正文

深圳专业企业网站建设网络推广一般都干啥

深圳专业企业网站建设,网络推广一般都干啥,wordpress防黑客插件,什么网站可以做护考题类模板是用来生成类的蓝图&#xff0c;与函数模板的不同之处是&#xff0c;编译器不能为类模板推断模板参数类型。 所以我们在使用类的时候要带上<>并且指定类型如下 vector<int> v; // 需要带上<int> 哦定义类模板 如下&#xff0c;和函数模板差不多都是…

类模板是用来生成类的蓝图,与函数模板的不同之处是,编译器不能为类模板推断模板参数类型。

所以我们在使用类的时候要带上<>并且指定类型如下

vector<int> v;  // 需要带上<int> 哦

定义类模板

如下,和函数模板差不多都是在前面放个template里面用typename或者class定义个东东

template <typename T>
class Demo{
public:void cmp(T a);
private:...
};

在类外如果要实现类内函数的实现的话需要有如下写法

template<typename T> // 要加上这个 并且Demo写成这样Demo<T> 
void Demo<T>::cmp(T a) {cout << a << endl;
}

在类内不需要额外加东西

实例化类模板

Demo<int> d;
Demo<char> c;

就这样简单用

不过需要注意的是:

一个类模板的每个实例都形成一个独立的类,类型Demo<int> 与Demo<char> 一点关系都没有,也不能对其他类型的内部变量访问有啥特殊权限

说白一点就是,都是人,不过是陌生人而已不是亲戚

一般时候,类模板成员都是在使用的时候才实例化的

类模板和友元

当一个类包含一个友元声明时,类与友元各自是否是模板是相互无关的。如果一个类模板包含一个非模板的友元,则友元可以访问所有模板类型。如果友元自身是模板,类可以授权给所有友元模板,也可以只授权个特定实例

一对一友好关系
template <typename T> class Tmp;//声明一个Tmp类模板template <typename T>
class Demo{
public:void cmp(T a);friend Tmp<T>;
private:
};

上述关系中 Tmp 是Demo 的友元,不是别的类型的友元

通用和特定的模板友好关系
template <typename T> class Demo;template <typename T> class Tmp
{
public:template<typename P>void output(Demo<P> d) {cout << d.p << endl;}
};template <typename T>
class Demo{
public:template <typename T> friend class Tmp;
private:int p = 10;
};int main()
{Demo<int> d;Tmp<char> t;t.output(d);//可以输出是10return 0;
}
令模板自己的类型成为自己的友元
template<typename Type> 
class bar{friend Type;
}

c++11还能这样写,Type是bar<Type>的友元

值得注意的是:友元通常是一个函数或者是一个类,但是基本类型也是被允许的,方便能用基本类型初始化类

模板类型别名

类似下面这样写法

	typedef Demo<int> DemoInt;using DemoChar = Demo<char>;

模板中的静态成员

和正常类一样,模板中也可以声明静态成员,不过需要注意的一点是:

模板的静态成员只属于对应的模板

Demo<int> d ,c ;
Demo<char> p;

d和c拥有同一个静态成员

p自己单独一个静态成员

并且,一个static成员函数只有在使用时才会实例化

使用类的类型成员

我们使用 域运算符(::)来访问static成员和类型成员,在普通(非模板)的代码中,编译器掌握类的定义,因此,他知道通过作用域运算符访问的名字是类型还是static成员。

例如下面,编译器知道string类型从而知道size_type是一个类型

string::size_type 

但是如果在模板下

T::size_type * p;

编译器:size_type是个啥 ? 昂~懂了,是个变量要和 p 乘起来~

编译器默情况就会把他当成变量,如果你想让编译器认为他是个类型就要加入typename

	typename T::size_type  *p ;

编译器:昂~ ,闹了半天是个类型啊

虽然可以使用上述,但是如果在传入类型时没有size_type类型会报错的哦

默认模板参数

这个和函数参数列表差不多,可以指定默认的模板参数,

template <typename T , typename D = int>
class Demo{};
Demo<int> //默认就是Demo<int,int>
Demo<int,char> //就是这个类型了

有同学就说了,一个能行,那我都闹上能不能行?

template <typename T = double , typename D = int>
class Demo{};

当然可以

Demo d;//有的脑洞大开同学就像这么写了
Demo<> p;//这样才是对的
http://www.hengruixuexiao.com/news/20183.html

相关文章:

  • 自助开通网站潍坊今日头条新闻最新
  • 网赌网站怎么做怎么做电商创业
  • 网站开发工资网站建设流程图
  • 公司网站费怎么做分录哪里有学市场营销培训班
  • 怎么用ftp上传网站甘肃seo网站
  • 百度云 做视频网站软文街官网
  • 广东东莞最近出什么事了怎么关键词优化网站
  • 伊春住房和城乡建设局网站seo排名啥意思
  • 网站建设 外文文献怎么推广自己的微信
  • 微信小程序 创建网站长沙网红打卡景点排行榜
  • 手机app快速开发平台网站seo推广员招聘
  • 定制网站建设设计公司免费学生网页制作成品
  • wordpress图标不显示了江西网络推广seo
  • 合肥做网站推广的公司百度地图疫情实时动态
  • 外贸网站建设公司服务百度推广开户费用多少
  • 做直播券的网站有多少上海排名seo公司
  • 湘潭县委网站快速开发平台
  • 深圳做网站哪个公司好windows优化大师收费
  • 宁波大型网站推广服务天津seo管理平台
  • 软件项目管理pdf广告网站建设网站排名优化
  • 有哪些关于校园内网站建设的法律优秀企业网站模板
  • 惠州网络推广公司班级优化大师手机版下载(免费)
  • 做自己的网站不是免费的个人做seo怎么赚钱
  • 佛山营销型网站建设新乡seo外包
  • 武汉做网站优化公司如何让产品吸引顾客
  • 长沙学网页设计的学校有哪些seo关键词推广公司
  • 上海 有哪些做网站的公司襄阳网站seo
  • 可以自己做网站经营吗怎么申请一个网站
  • 私自建设网站东营seo网站推广
  • 做学校网站会下线吗百度云官网入口