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

C++ .h文件类的调用

demo1只有类的情况下调用

下面写一个util.h 文件里面

// 定义宏防止编译器重复编译
#ifndef TEST_H
#define TEST_H
class Test{
public:

    void sum(int a, int b);

    int num(int a, int b);

    bool number();

};
#endif // TEST_H

调用的时候首先要引入这个头文件 #include "util.h"

cpp 里面实现

#include <iostream>
#include <string>
#include "util.h"
using namespace std;

// 实现Test类的sum成员函数
void Test::sum(int a,int b){
    cout << "The sum of " << a << " and " << b << " is: " << a + b << std::endl;
}
// 实现Test类的num成员函数
int Test::num(int a, int b) {
    return a * b;
}
// 实现Test类的number成员函数
bool Test::number() {
    return true;
}

int main() {
    int a =3;
    int b =6;
    Test test;
    test.sum(a,b);
    int result = test.num(a,b);
    cout<< "num result" << result <<endl;
    bool isNumber = test.number();
    cout<< "number result" << isNumber <<endl;
    return 0;
}

demo2 有namespace的情况下调用

util.h 文件

// 定义宏防止编译器重复编译
#ifndef TEST_H
#define TEST_H
namespace common::comm::com {
class Test{
public:

    void sum(int a, int b);

    int num(int a, int b);

    bool number();

};
}
#endif  

cpp 里面实现,这里不使用using namespace

#include <iostream>
#include <string>
#include "util.h"
using namespace std;

// 实现Test类的sum成员函数
void common::comm::com::Test::sum(int a,int b){
    cout << "The sum of " << a << " and " << b << " is: " << a + b << std::endl;
}
// 实现Test类的num成员函数
int common::comm::com::Test::num(int a, int b) {
    return a * b;
}
// 实现Test类的number成员函数
bool common::comm::com::Test::number() {
    return true;
}

int main() {
    int a =3;
    int b =6;
    common::comm::com::Test test;
    test.sum(a,b);
    int result = test.num(a,b);
    cout<< "num result" << result <<endl;
    bool isNumber = test.number();
    cout<< "number result" << isNumber <<endl;
    return 0;
}

使用using namespace

namespace common::comm::com {
// 实现Test类的sum成员函数
void Test::sum(int a,int b){
    cout << "The sum of " << a << " and " << b << " is: " << a + b << std::endl;
}
// 实现Test类的num成员函数
int Test::num(int a, int b) {
    return a * b;
}
// 实现Test类的number成员函数
bool Test::number() {
    return true;
}
}
int main() {
    int a =3;
    int b =6;
    using namespace common::comm::com;
    Test test;
    test.sum(a,b);
    int result = test.num(a,b);
    cout<< "num result" << result <<endl;
    bool isNumber = test.number();
    cout<< "number result" << isNumber <<endl;
    return 0;
}

实际用不用,根据个人习惯即可,不使用using namespace在每次调用时都写出完整的命名空间路径

把util.h 文件修改一层一层的

// 定义宏防止编译器重复编译
#ifndef TEST_H
#define TEST_H
namespace common{
    namespace comm{
        namespace com{

            class Test{
                public:

                    void sum(int a, int b);

                    int num(int a, int b);

                    bool number();
            };
        }
    }
}
#endif  

实现里面的方法效果也是一样的

#include <iostream>
#include <string>
#include "util.h"
using namespace std;

namespace common::comm::com {
// 实现Test类的sum成员函数
void Test::sum(int a,int b){
    cout << "The sum of " << a << " and " << b << " is: " << a + b << std::endl;
}
// 实现Test类的num成员函数
int Test::num(int a, int b) {
    return a * b;
}
// 实现Test类的number成员函数
bool Test::number() {
    return true;
}
}
int main() {
    int a =3;
    int b =6;
    using namespace common::comm::com;
    Test test;
    test.sum(a,b);
    int result = test.num(a,b);
    cout<< "num result" << result <<endl;
    bool isNumber = test.number();
    cout<< "number result" << isNumber <<endl;
    return 0;
}

或者

#include <iostream>
#include <string>
#include "util.h"
using namespace std;

namespace common {
    namespace comm {
        namespace com {
            // 实现Test类的sum成员函数
            void Test::sum(int a, int b) {
                std::cout << "The sum of " << a << " and " << b << " is: " << a + b << std::endl;
            }
            int Test::num(int a, int b) {
                return a * b;
            }
            bool Test::number() {
                return true; // 示例返回true
            }
        } // 结束命名空间 com
    } // 结束命名空间 comm
} // 结束命名空间 common
int main() {
    int a =3;
    int b =6;
    using namespace common::comm::com;
    Test test;
    test.sum(a,b);
    int result = test.num(a,b);
    cout<< "num result" << result <<endl;
    bool isNumber = test.number();
    cout<< "number result" << isNumber <<endl;
    return 0;
}


http://www.kler.cn/a/232178.html

相关文章:

  • 用PHP实现一个简单的http服务器
  • sqli-labs靶场17-20关(每日四关)持续更新!!!
  • 丹摩征文活动 |【前端开发】HTML+CSS+JavaScript前端三剑客的基础知识体系了解
  • 一文说清C++类型转换操作符(cast operator)
  • 《基于Oracle的SQL优化》读书笔记
  • 【3D Slicer】的小白入门使用指南八
  • 【多模态】27、Vary | 通过扩充图像词汇来提升多模态模型在细粒度感知任务(OCR等)上的效果
  • 面试高频知识点:2线程 2.1.5如何自定义实现一个线程池
  • C语言--------指针(1)
  • muduo库的模拟实现——TcpServer部分
  • 运维高级篇-分库分表(拆分策略详解)
  • 假期作业 7
  • 【嵌入式-传感器】从旋转编码器到学会看懂方波
  • 《动手学深度学习(PyTorch版)》笔记7.6
  • 复制和粘贴文本时剥离格式的5种方法(MacWindows)
  • c# Config 配置文件帮助类
  • 3.2 Verilog 时延
  • 一个基于 .NET 7 + Vue.js 的前后端分离的通用后台管理系统框架 - DncZeus
  • [Java][算法 哈希]Day 01---LeetCode 热题 100---01~03
  • 基于华为云欧拉操作系统(HCE OS)容器化部署传统应用(Redis+Postgresql+Git+SpringBoot+Nginx)
  • 【Network Management】AUTOSAR架构下CanNm User Data详解
  • echarts使用之地图(五)
  • 【几分钟】快速熟悉torch.save()、torch.load()、torch.nn.Module.load_state_dict()
  • ONLYOFFICE文档8.0新功能浅探
  • 软件测试学习笔记-测试用例的编写
  • 项目学习记录