C# C+中的函数排列+; 我刚开始用C++,我在函数的设置方面有一些问题。p>

C# C+中的函数排列+; 我刚开始用C++,我在函数的设置方面有一些问题。p>,c#,c++,visual-studio,function,visual-c++,C#,C++,Visual Studio,Function,Visual C++,当我使用Unity(C#)时,我通常先编写Start函数,然后根据调用它们的时间编写其他函数 TryAgain; 如果(TryAgain==1) { } 否则如果(TryAgain==2) { 打破 } } 返回0; } 无效添加(内部编号1、内部编号2) { STD::C++中的CUT我们主要使用范围,只要变量或函数没有声明为外部或声明(头等)编译器不能告诉。在这种特殊情况下,C++就像C语言一样工作,如果你把苹果和苹果比较。类似于C示例,将包含一个类,其中一些成员可以按任意顺序定义和调用:

当我使用Unity(C#)时,我通常先编写Start函数,然后根据调用它们的时间编写其他函数

<这里,在C++中,看起来它是反之亦然! 例如,我在LearnCPP.com上学习时编写了这个简单的程序

#include <iostream>


void Add(int No1, int No2)
{
    std::cout << No1 + No2 << std::endl;
}

void Subtract(int No1, int No2)
{
    std::cout << No1 - No2 << std::endl;
}

void GetNumbers(int Operation)
{
    int No1;
    int No2;

    std::cout << "The first no. : ";
    std::cin >> No1;
    std::cout << "The second no. : ";
    std::cin >> No2;

    if (Operation == 1)
    {
        Add(No1, No2);
    }
    else if (Operation == 2)
    {
        Subtract(No1, No2);
    }
}

int main ()
{
    while (true)
    {
        int Operation;
        int TryAgain;

        std::cout << "Enter 1 for an Addition Operation. Enter 2 for a Subtraction Operation." << std::endl;
        std::cin >> Operation;

        GetNumbers(Operation);

        std::cout << "Enter 1 to try again. Enter 2 to exit.";
        std::cin >> TryAgain;

        if (TryAgain == 1)
        {

        }
        else if (TryAgain == 2)
        {
            break;
        }
    }

    return 0;
}
#包括
无效添加(内部编号1、内部编号2)
{

std::cout您至少应该正向声明函数,并且可能使用包含正向声明的.hpp文件。

函数必须在使用之前声明,但您可以稍后定义它们:

int add (int a, int b);

int main () {
    return add(1,2);
}

int add (int a, int b) {
    return a + b;
}

这是因为C++需要函数头来知道函数在调用之前使用的参数,所以在调用主函数或声明函数原型之前,必须先定义函数,这样就可以定义:

#include <iostream>


//function prototypes
void Add(int No1, int No2);
void Subtract(int No1, int No2);
void GetNumbers(int Operation);

int main ()
{
    while (true)
    {
        int Operation;
        int TryAgain;

        std::cout << "Enter 1 for an Addition Operation. Enter 2 for a Subtraction Operation." << std::endl;
        std::cin >> Operation;

        GetNumbers(Operation);

        std::cout << "Enter 1 to try again. Enter 2 to exit.";
        std::cin >> TryAgain;

        if (TryAgain == 1)
        {

        }
        else if (TryAgain == 2)
        {
            break;
        }
    }

    return 0;
}

void Add(int No1, int No2)
{
    std::cout << No1 + No2 << std::endl;
}

void Subtract(int No1, int No2)
{
    std::cout << No1 - No2 << std::endl;
}

void GetNumbers(int Operation)
{
    int No1;
    int No2;

    std::cout << "The first no. : ";
    std::cin >> No1;
    std::cout << "The second no. : ";
    std::cin >> No2;

    if (Operation == 1)
    {
        Add(No1, No2);
    }
    else if (Operation == 2)
    {
        Subtract(No1, No2);
    }
}
#包括
//功能原型
无效添加(内部编号1、内部编号2);
无效减法(整数1,整数2);
void GetNumbers(int操作);
int main()
{
while(true)
{
int操作;
国际特里亚加因;
std::cout操作;
获取数字(操作);
标准::cout>TryAgain;
如果(TryAgain==1)
{
}
否则如果(TryAgain==2)
{
打破
}
}
返回0;
}
无效添加(内部编号1、内部编号2)
{

STD::C++中的CUT

我们主要使用范围,只要变量或函数没有声明为外部或声明(头等)编译器不能告诉。

在这种特殊情况下,C++就像C语言一样工作,如果你把苹果和苹果比较。类似于C示例,将包含一个类,其中一些成员可以按任意顺序定义和调用:

class CMyClass
{
    void Start()
    {
        GetNumbers(1);
    }
    void GetNumbers(int Operation) 
    {
        Add(2, 3);
        Subtract(4, 5);
    }
    void Add(int No1, int No2) {}
    void Subtract(int No1, int No2) {}
};

您会遇到什么错误?您可以修改函数,然后在
main
function@twentylemon虽然了解接收到的错误通常很有帮助,但这是一种罕见的情况,因为问题非常简单,查看代码应该可以轻松地向您显示问题(作为一个新的C++程序员,OP并不熟悉).@mah所有的东西都是在使用前声明的…@twentylemon是的,当他更改这个时,他会出错。他发布的代码是一个有效的例子。请重新阅读这个问题。我认为这个答案对目标受众来说有点困惑。也许你可以扩展一下,并将它与问题联系起来。非常感谢你的回答您可以创建一个宏并将其插入到cpp文件的末尾,进行输出,然后您将知道是否已从编译器中读取了类。标题开头的转发声明,包括在cpp文件的开头。这应该会有所帮助。非常感谢您的帮助answer@AdhamT如果答案是肯定的,请接受绿色V的回答请回答你的问题。