• [c++] 声明


    注意事项

    • 变量定义时就会赋初值(如int是0),所以定义包含声明,单纯声明不定义的话,要加extern
    • 同一个文件中,函数使用(调用)前必须定义(有{ }为定义),否则会报错;若先使用再定义,或定义和使用不在一个文件,需声明以告诉编译器(不要报错,会在之后定义),因为编译器只对一个文件进行编译
    • 同一个文件中,类使用(实例化)前必须定义(有{ }为定义),否则要声明。同一个类,定义、声明、使用可能在三个文件中完成
    • 永远不要在.h文件中定义变量。定义变量和声明变量的区别在于定义会产生内存分配的操作,是汇编阶段的概念;而声明则只是告诉包含该声明的模块在连接阶段从其它模块寻找外部函数和变量
    • 函数、类定义时不会分配内存,类实例化时会为变量分配内存
    • 总结:使用前定义,否则声明

    例1:一个project中包含三个文件

    test1.cpp

    #include <stdio.h>
    #include "test2.h"
    int main(){
        printf("a=%d
    ",a);
        return 0;
    }

    test2.h

    extern int a;

    test2.cpp

    int a = 10;

    >>a = 10

    例2:

    写法一:

    //=============A.h start====================
    #include <B.h>
    class A
    {
    private:
      B * impl;
    };
    //=============A.h end====================

    写法二:

    //=============A.h start====================
    class B;

    class A
    {
    private:
      B * impl;
    };
    //=============A.h end====================

    //=============A.cpp start====================

    #include <A.h>
    #include <B.h>
    // 其他具体实现

    ........

    //=============A.cpp end====================
    写法一是使用前定义;写法二是使用前声明,随后定义

    参考:

    https://blog.csdn.net/skk18739788475/article/details/79643978

    https://blog.csdn.net/CC_20171030/article/details/78557723

  • 相关阅读:
    分治法(待整理)
    NP完全问题
    合并排序
    插入排序
    算法基础知识(算法导论)
    分支定界法
    RUCM简介
    大一编程基础培训]==06课==Python的字符串和编码
    python加密包利用pycrypto包进行AES、DES、MD5等加密
    pyecharts模块
  • 原文地址:https://www.cnblogs.com/cxc1357/p/11809832.html
Copyright © 2020-2023  润新知