Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 为什么在创建新的C++;上课? 我大约在14年前编写了一段C++程序。我熟悉了一些新技术,比如我主要使用的.NET 现在,我正在编写一个SimLPE电话列表Windows应用程序,我想让它成为C++,这样我就可以更好地查看C和C++的差异。_Visual Studio_Visual C++_Class_Header Files_Visual C++ 2008 - Fatal编程技术网

Visual studio 为什么在创建新的C++;上课? 我大约在14年前编写了一段C++程序。我熟悉了一些新技术,比如我主要使用的.NET 现在,我正在编写一个SimLPE电话列表Windows应用程序,我想让它成为C++,这样我就可以更好地查看C和C++的差异。

Visual studio 为什么在创建新的C++;上课? 我大约在14年前编写了一段C++程序。我熟悉了一些新技术,比如我主要使用的.NET 现在,我正在编写一个SimLPE电话列表Windows应用程序,我想让它成为C++,这样我就可以更好地查看C和C++的差异。,visual-studio,visual-c++,class,header-files,visual-c++-2008,Visual Studio,Visual C++,Class,Header Files,Visual C++ 2008,让我说,我已经注意到了一个不同!呵呵。。。因此,其中一个区别是,当从VisualStudio模板创建新的C++类时,它不仅创建.cp类文件,而且还创建一个头文件及其文件。 为什么会这样?为什么要为一个类创建class1.h和class1.cpp文件 我记得头文件很可能是函数和对象的库,如果我们可以这样说的话,为了将来的重用,我记得对吗 问题 为什么在添加新的C++类时创建两个文件(.h和.cp)? 我应该在头文件中定义成员,在cpp文件中定义核心函数吗 如果对2为否,那么在这个特定场景中头文件的

让我说,我已经注意到了一个不同!呵呵。。。因此,其中一个区别是,当从VisualStudio模板创建新的C++类时,它不仅创建.cp类文件,而且还创建一个头文件及其文件。

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

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

问题

为什么在添加新的C++类时创建两个文件(.h和.cp)?
  • 我应该在头文件中定义成员,在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
    #包括
    char[]客户::获取_编号(){
    返回(u)号;;
    }
    无效客户::设置_编号(字符*编号){
    if(number!=null&&sizeof(number)<1)返回;
    _数字=数字;
    }
    //这里的其他成员。。。
    
    现在我知道了,我的代码中有很多错误。如果你帮我改正,我会很高兴,这样我就能提高我的C++技能。
    谢谢你帮我弄明白。

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

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

    • 标题包含其他文件要使用的声明
    • .cpp文件包含实现

    原因是您希望许多文件能够利用功能,但您只希望在一个位置实际定义该功能。

    头文件声明/定义一个类。它包含成员函数、成员数据、朋友等。通常,它不包含太多(如果有的话)实现(模板是例外)

    实现文件(*.cpp)就是这样:它们实现类


    您不必使用实现文件(如果您告诉VS向导您要创建一个内联类,它将只创建头文件),但通常只对模板类(例如STL类和boost库中的许多类)执行此操作或非常简单的类。

    头文件是C++编译所必需的,因为它与C<./p>几乎没有区别。 在C#中,二进制模块之间的链接总是动态的。在C++中,静态和动态链接有区别。要深入细节,我得花上整整一个小时的时间来写,但让我们说这是最短的方式

    在C++中,每个.CPP文件被单独编译成一个对象文件。该文件需要链接到其他文件才能形成二进制文件。头文件声明包含它的.cpp文件所需的所有方法签名,该文件调用为类定义的方法


    在C++中,所有文件都编译成一个二进制文件,即编译器总是知道编译的成员可以看到哪些类和方法。

    < P>函数和C++类必须在使用之前声明,这只是一个声明,说明这些函数可以从这个文件中使用。这些声明是使用头文件(
    .hpp
    /
    .h
    文件)导入的

    要声明函数,请编写以下代码:

    返回类型
    函数名
    参数

    所以这个函数:

    int factorial (int x)
    {
      if (x == 0)
        return 1;
      return x * factorial (x - 1);
    }
    
    将预先声明如下:

    int factorial (int x);
    
    声明类如下所示:

    int factorial (int x);
    
    类名
    {
    函数和变量声明
    }

    因此,使用方法
    bar
    class Foo
    和公共成员变量
    baz
    如下所示:

    int factorial (int x);
    

    foo.hpp:

    #ifndef FOO_HPP_
    #define FOO_HPP_
    
    class Foo
    {
    public:
      int baz;
    
      void bar ();
    };
    
    #endif
    
    #include "foo.hpp"
    #include <iostream>
    
    void Foo::bar ()
    {
      std::cout << baz << std::endl;
    }
    

    foo.cpp:

    #ifndef FOO_HPP_
    #define FOO_HPP_
    
    class Foo
    {
    public:
      int baz;
    
      void bar ();
    };
    
    #endif
    
    #include "foo.hpp"
    #include <iostream>
    
    void Foo::bar ()
    {
      std::cout << baz << std::endl;
    }
    
    #包括“foo.hpp”
    #包括
    void Foo::bar()
    {
    
    std::cout那么私有成员(如用于属性函数的字段)呢
    get\u this
    set\u this
    ?一个小问题:类和函数不必“预先声明”在C/C++中,它们只需在使用前声明或实现。除了大型项目上长编译时间的头痛之外,没有什么能阻止您用头文件ALL来实现每个类。这是C++ + CLI。您想使用本机C++还是托管C++代码?有很大的区别。@史提夫:谢谢P。事实上,我不能这么说。我想,原生C++对于我来说,能在C++中足够的下钻,这样我就可以快速地运行起来,让我能够有效地开发应用程序,对吗?或者它甚至值得?如果你想学习不需要CLR的C++代码,那么你需要本机C++。<代码> REF类<代码中的code>是一种赠品,从函数返回数组。在本机代码中两者都不可能。