c++ - 从 C++ 中的其他文件访问函数时遇到问题

标签 c++ debugging

我刚刚开始学习 C++,现在我正在尝试使用面向对象的编程。我从其他文章中读到,我需要使用该函数为文件创建一个头类,并将其包含到使用该函数的所有文件中。但是,每当我尝试将函数放入代码运行时,它都无法正常运行。我的函数使用 math.h 的 sqrt 方法对我输入的数字进行平方根。我知道我可以在 main() 中使用它,但我想测试 OOP。当我在 main 方法中使用 sqrt 时,我的程序可以运行,但是当我将它放入另一个文件时,我的程序吐出与我输入的相同的数字。 这是我的代码

源.cpp

#include <iostream>
#include "Source2.h"




int main(){
    using namespace std;
    cout << "Please enter the number you want to root." << endl;
    int x;
    cin >> x;
    function1(x);
    cout << x;

}  

Source2.cpp

#include <math.h>

int function1(int n){
int sqrt(n);
return n;
}

Source2.h

#ifndef _SOURCE2_H
#define _SOURCE2_H

int function1(int n);

#endif

此代码的工作方式与预期不同。所以你可以称之为我的错误。如果你输入一个像 4 这样的数字,我的程序应该给出 2 的平方根。 帮助将不胜感激。 谢谢

最佳答案

My function uses the sqrt method of math.h to square root a number I input.

不,不是。

它声明了一个名为 sqrtint,用值 n 初始化,然后立即忽略这个新的 int .

int sqrt(n);   // this is the same as `int sqrt = n;`
return n;

你的意思是:

return sqrt(n);

所以这与“其他文件”或类似的东西无关:您只是由于语法错字而未能实际调用 sqrt


同样,当您调用 function1 时,您不会对结果做任何事情。

function1(x);

代替这个,写:

x = function1(x);

您还应该知道这不是面向对象的编程。

关于c++ - 从 C++ 中的其他文件访问函数时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20832634/

相关文章:

c++ - VS2015 Debugger 不扩展变量

debugging - 如何让 gdb 保存命令历史记录?

c# - 在类型初始值设定项中调试异常

c# - 我如何允许在 VS2010 中中断 'System.NullReferenceException'?

c++ - 有哪些用户友好的图像处理库?

c++ - 什么时候为类成员释放使用 alloca 分配的内存?

c++ - 实现 std::vector 时,我是否必须拥有 end() 的 "end"指针?

c - 连接共享内存段时出错

c++ - 如何使 cin >> 不将 float 转换为整数?

c++ - 如何解决 gcc-3.4 错误(或者这可能不是错误)?