首页 > 编程语言 >C++的前置声明

C++的前置声明

时间:2022-11-02 01:44:05浏览次数:40  
标签:typedef buffer my 前置 C++ 声明 class pool

C++的前置声明

C++前置声明,这玩意看起是不是超级简单?

我们来看几个问题:

  • 模板怎么前置声明

  • typedef怎么前置声明

  • 模板的typedef 怎么前置声明

是不是还是比较头疼的。

模板怎么声明

//a.h
template<typename T> class buffer_pool
{
    
};

//b.h

//前置定义
template<typename T> class buffer_pool;
class AAA
{
    buffer_pool<int>  *int_buffer_ = nullptr;
};

和template的定义的头部类似。

typedef怎么前置声明

//a.h
class class001
{
    ...
};
 
typedef class001 def_my_class;

//b.h

//前置定义
typedef class class001 def_my_class;
class AAA
{
    def_my_class  *my_class_ = nullptr;
};

注意必须写class 这些关键字。

模板的typedef 怎么前置声明

//a.h
template<typename T> class buffer_pool
{
    
};
typedef buffer_pool<class001> def_my_pool;

//b.h

//前置定义
class class001;
template<typename T> class buffer_pool;
typedef buffer_pool<class001> def_my_pool;

class AAA
{
    def_my_pool  *my_pool_ = nullptr;
};

这儿要注意必须层层先声明。先声明模板参数类,再声明模板类,最后再声明模板的typedef。

C++是促进脑死亡的最佳方式,果然名不虚传。

标签:typedef,buffer,my,前置,C++,声明,class,pool
From: https://www.cnblogs.com/fullsail/p/16849724.html

相关文章

  • QML实例化C++的类
    [网页](https://blog.csdn.net/baidu_33850454/article/details/81907857?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166731863916782429784725%2522%252C......
  • 13.声明式事务
    13.声明式事务13.1.回顾事务把一组业务当成一个业务来做,要么都成功,要么都失败!事务在项目开发中,十分的重要,涉及到数据的一致性问题,不能马虎!确保完整性和一致性;事务的......
  • 如何解决何避免多个C/C++动态库函数同名冲突
    前言现在的开发节奏越来越快,有大量现成的库来方便我们的开发者来使用,避免重复造轮子,而且有很多有生命力的开源社区。当然在使用过程中,你可能为这样的场景而头痛:你的项目中用......
  • c++ new数组同时初始化
    今天的小目标:先来一个亿,咳咳咳.实现:new一个数组,成员全部用1初始化:int*p=newint[10](1);应该是编译不过的哈!.再来:int*p=newint[10];for(inti=0;......
  • c++从入门到精通——命名空间与作用域
    1C++概述C++两大编程思想面向对象泛型编程1.2移植性和标准ANSI在1998制定出C++第一套标准2c++初识引入头文件#include标准输入输出流使用标准命名空间using......
  • c++从入门到精通——C++对于C语言的增强和拓展
    全局变量检测增强inta;inta=10;C下可以,C++重定义C语言之下,全局变量定义,不会出错。#include<stdio.h>inta;inta=10;intmain(){printf("helloworld!");retu......
  • C++从入门到精通——引用及其注意事项
    引用基本语法:类型&别名=原名#define_CRT_SECURE_NO_WARNINGS#include<iostream>#include<string>usingnamespacestd;//引用基本语法:类型&别名=原名voidtest01......
  • c++从入门到精通——const分配内存模型
    const分配内存模型对const变量取地址,分配临时内存#define_CRT_SECURE_NO_WARNINGS#include<iostream>usingnamespacestd;voidtest(){constinta=10;int*p=(i......
  • c++从入门到精通——宏定义缺陷以及函数重载
    必须要加括号保证运算完整#define_CRT_SECURE_NO_WARNINGS#include<iostream>usingnamespacestd;#include<string>#defineMYADD(x,y)((x)+(y))//必须要加括号保证运......
  • c++从入门到精通——构造函数和析构函数
    构造和析构必须要声明在全局作用域构造函数没有返回值不用写void函数名与类名相同可以有参数,可以发生重载构造函数由编译器自动调用一次无须手动调用析构函数没有返回......