C++程序的执行不是从上往下么?

#include<iostream>
using namespace std;
class addparity
{
private:
int num;
public:
addparity(int n){n=num;}
int add();
void print();
};

int addparity::add()
{
int i,sum=0;
if(num%2==0)
i=2;
else
i=1;
for(;i<=num;i=+2)
sum=sum+i;
return sum;
}
void addparity::print()
{
cout<<"总和为:"<<add()<<endl;
}
int main()
{
int n;
cin>>n;
addparity A(n);
A.print();
return 0;
}
这个程序他会先执行print(),然后再执行add(),求真相。
好吧,我只是想输入一个n,当n为偶数时,求表达式2+4+6+……+n的和,当n为奇数时求1+3+5+……+n的值,所以……我确定i=2是对i的初始化……同样i=1也是。

第1个回答  2012-05-17
C/C++程序从main() 开始执行。
addparity A(n); 构建A(n), 调用 addparity的构建函数。
接下来,A.print(); 调用 void addparity::print(), print() 里面
cout<<"总和为:"<<add()<<endl; 执行时调用 add()
到 <<endl; 结束
最后执行 主程序里的 return 0; 全程序结束。
第2个回答  2012-05-17
1.改程序有错:构造函数public: addparity(int n){num=n;}而不是n=num。
在int addparity::add(void)定义中for(;i<=num;i=+2)应改为for(;i<=num;i+=2)
2.主函数是从上至下运行,主函数中只调用对象的print()函数,而该函数的定义中有调用add()函数,所以先执行print(),然后再执行add()。本回答被提问者采纳
第3个回答  2012-05-17
#include<iostream>
using namespace std;
class addparity
{
private:
int num;
public:
addparity(int n)
{
// 大哥你这个赋值语句是来搞笑的?
// 你确定不是 num=n; ?
n=num;
}
int add();
void print();
};

int addparity::add()
{
int i,sum=0;
if(num%2==0)
i=2;
else
i=1;

// 大哥,你这里又是来搞笑的?
// 你确定不是 i+=2 么?
for(;i<=num;i=+2)
sum=sum+i,cout<<sum<<" "<<" "<<num<<" "<<i<<endl;
return sum;
}
void addparity::print()
{
cout<<"总和为:"<<add()<<endl;
}
int main()
{
int n;
cin>>n;
addparity A(n);
A.print();
return 0;
}追问

谢谢

追答

你按我说的两个地方改过了,就能实现你要的效果了。

第4个回答  2012-05-17
呵呵,他是在主程序开始的,很明显你的main()里调用了print,并且print函数调用了add(),
第5个回答  2012-05-17
不知道你问的是神马问题,而且左值右值也不分,还有变量也不初始化,总之漏洞百出,请楼主确定问题后再来问。这样大家也能集思广益帮助你。

C++程序执行的顺序是什么?不是说从上至下执行?可是下面这个程序运行结 ...
从主函数开始,向下执行。遇到子函数则进入子函数执行,执行完后继续返回主函数向下执行。

代码执行顺序是从上往下吗
是的,代码的执行顺序通常是从上往下,逐行执行的。在大多数编程语言中,包括Python、Java、C++等,代码的执行顺序遵循从上到下的原则。也就是说,程序从第一行代码开始执行,然后逐行向下执行,直到程序的最后一行。这种执行方式也被称为顺序执行。这种执行顺序规则使得程序员可以预测和理解代码的行为。例...

c++程序总是从什么开始执行
从上往下依次执行,有方法的调用的时候会先运行方法里面的内容。

C++程序的执行顺序究竟是什么?
因为编译是从上至下进行编译的,如果函数的调用放在了这个函数定义之前(未经声明),在编译时就会报错。如果要使用的函数的定义在它使用之前,则不用进行声明(因为此时编译器已经知道这是一个函数了)(但是一般程序员都会把主函数放在程序的最上面,这样可以让程序很直观,但这样做则需要将后面定义的函数...

c++程序编写和执行顺序的问题
如果你在某个函数被调用之前定义它,那就不需要再声明了,因为系统读取程序的顺序是自上而下的,所以系统已经知道你要调用的函数。但是编译程序却是从main函数开始的,一个程序的开始就是main函数的开始,一个程序的结束就是main函数的结束。至于在main函数中对于各种其他函数的调用则可以看作是一个相对...

C++程序的执行顺序是什么
从main开始,遇到函数就会保存当前函数的执行状态并跳转到函数里,调用函数执行完以后获得传回值并继续执行。最后返回。主函数返回时程序结束。全局变量在程序开始执行时创建,结束时销毁。局部变量在变量声明处创建,在声明所在括号的“}”处结束(不包括子括号)...

c++代码 是怎么执行的?
c++需要编译,链接了才能运行,编译好之后就是 机器码 ,直接拷贝到内存里,然后把cpu的指令指针指向开始的位置,然后根据指令该往下的往下,该跳转的跳转,该push的时候push,该pop的时候pop,lz去看下汇编或是单片机能了解的明白点

C++程序是从 函数开始执行的
从main函数开始,因为c++虽然号称是面向对象编程,实际上到了最底层还是过程式程序。

c++程序的执行从何开始从何结束
main 开始时 程序开始(当然前面的#define #include 是在这个之前运行的)main结束时 程序结束

c++为什么输出与输入相反呢?倒序?
未定义行为 由于是printf,所以调用约定为__cdecl,只能确定入栈的顺序是自右向左,但是具体的求值顺序是不确定的

相似回答