我刚刚开始学习 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.
不,不是。
它声明了一个名为 sqrt
的 int
,用值 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/