gpt4 book ai didi

visual-studio - 为什么在创建新的 C++ 类时会创建两个文件(.h 和 .cpp)?

转载 作者:行者123 更新时间:2023-12-04 03:45:27 26 4
gpt4 key购买 nike

大约 14 年前,我已经编写了一点 C++。我熟悉了我主要使用的新技术,例如 .NET。

现在,我正在编写一个 simlpe 电话列表 Windows 应用程序,我想将其设为 C++,以便更好地查看 C# 和 C++ 的差异。

让我说我已经注意到了不同之处!呵呵……因此,其中一个区别是,当从 Visual Studio 模板创建一个新的 C++ 类时,它不仅会创建 .cpp 类文件,还会创建一个头文件。

为什么呢?为什么要为一个类创建一个 class1.h 和一个 class1.cpp 文件?

我记得头文件可能是函数和对象的库,如果我们可以这样说,以供将来重用,我记错了吗?

问题

  • 为什么在添加新的 C++ 类时会创建两个文件(.h 和 .cpp)?
  • 我应该在头文件中定义成员并在cpp文件中定义功能核心吗?
  • 如果不是 2,那么在这个特定场景中的头文件是什么?

  • 编辑#1

    那么我的代码应该是这样的吗?
    // Customer.h header file
    ref class Customer {
    private:
    char* _number, _name;
    long _phoneNumber;

    public:
    char[] get_number();
    void set_number(char* number);
    char[] get_name();
    void set_name(char* name);
    long get_phoneNumber();
    void set_phoneNumber(long phoneNumber);
    void set_name(char* name);
    }

    然后:
    // Customer.cpp
    #include <Customer.h>

    char[] Customer::get_number() {
    return _number;
    }

    void Customer::set_number(char* number) {
    if (number != null && sizeof(number) < 1) return;
    _number = number;
    }

    // And the other members here...

    现在我知道,我的代码中有很多错误。如果你能帮我纠正它们,我会很高兴,这样我就可以提高我的 C++ 技能。

    谢谢你帮我弄清楚。

    最佳答案

    类在 header 中声明,大多数功能在 .cpp 文件中定义。该工具正在帮助您实现接口(interface)与实现的分离。

    考虑头文件和 .cpp 文件之间分离的方法是:

  • header 包含要由其他文件使用的声明。
  • .cpp 文件包含实现。

  • 原因是您希望大量文件能够使用功能,但您只想在一个地方实际定义该功能。

    关于visual-studio - 为什么在创建新的 C++ 类时会创建两个文件(.h 和 .cpp)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4370378/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com