请C++高手们帮我找一下以下程序的错误吧!(在VC++6.0环境下编译的)

作者&投稿:沙单 (若有异议请与网页底部的电邮联系)
用vc++6.0编译下面代码出现问题,怎么解决?求大神~

拷贝,编译,运行,没毛病

这段代码是C语言代码。但是你用的是vc++编译器。编译器的版本差异,总会造成千奇百怪的错误。

void max_string(char [][30],int n) 函数实现中,参数表中少了对str的定义。改为下面这句就可以了。
void max_string(char str[][30],int n)

我来总结一下
(1)构造函数声明那不给默认形参值,后面定义给出就可以了。

Point(double a,double b);//这里不用加默认形参值

Point::Point(double a=0,double b=0)//使用后就可以加

这是一种符合规范的书写格式,因为主要的是声明函数,不需要指定出的默认值,等使用后就可以加上自己的默认值了.

(2)在构造函数声明加默认形参值,后面定义时不要加.
因为在声明的时候规定了默认值,所以在重新定义的时候就不需要再加默认的参数.

(3)不用声明,直接定义
这种也是可以的,在类里面就直接写好了,也就不需要声明了.

Point::Point(double a,double b)///声明时候加默认值,定义的时候不用加
{
x=a;
y=b;
}

构造函数声明那儿不要给默认形参值,后面定义给出就可以了。
#include<iostream.h>
#include<math.h>
class Distance;
class Point
{
private:
double x;
double y;
public:
Point(double a,double b);//这里不用加默认形参值
void set_point(double a,double b);
double get_x();
double get_y();
friend Distance;
};
class Distance
{
public:
double output_distance(Point &p1,Point &p2);
};
Point::Point(double a=0,double b=0)
{
x=a;
y=b;
}
void Point::set_point(double a,double b)
{
x=a;
y=b;
}
double Point::get_x()
{
return x;
}
double Point::get_y()
{
return y;
}
double Distance::output_distance(Point &p1,Point &p2)
{
double y1,y2;
y1=(p1.x-p2.x)*(p1.x-p2.x);
y2=(p1.y-p2.y)*(p1.y-p2.y);
return sqrt(y1+y2);
}
void main()
{
double x1,y1,x2,y2;
cout<<"默认的两点是(0,0)和(1,1)"<<endl;
Point p1,p2(1,1);
Distance d;
cout<<"故两点之间的距离是:"<<d.output_distance(p1,p2)<<endl;
cout<<"现在重新定义两点:"<<endl;
cout<<"请输入第一个点的:"<<endl;
cout<<"横坐标:";
cin>>x1;
cout<<"纵坐标:";
cin>>y1;
cout<<"请输入第二个点的:"<<endl;
cout<<"横坐标:";
cin>>x2;
cout<<"纵坐标:";
cin>>y2;
p1.set_point(x1,y1);
p2.set_point(x2,y2);
cout<<"两点之间的距离是:"<<d.output_distance(p1,p2)<<endl;
}

直接把构造函数定义放在Point类里面就可以了,试试下面的,我这可以了
#include<iostream.h>
#include<math.h>
class Distance;
class Point
{
private:
double x;
double y;
public:
Point(double a=0,double b=0)
{
x=a;
y=b;
}
void set_point(double a,double b);
double get_x();
double get_y();
friend Distance;
};
class Distance
{
public:
double output_distance(Point &p1,Point &p2);
};

void Point::set_point(double a,double b)
{
x=a;
y=b;
}
double Point::get_x()
{
return x;
}
double Point::get_y()
{
return y;
}
double Distance::output_distance(Point &p1,Point &p2)
{
double y1,y2;
y1=(p1.x-p2.x)*(p1.x-p2.x);
y2=(p1.y-p2.y)*(p1.y-p2.y);
return sqrt(y1+y2);
}
void main()
{
double x1,y1,x2,y2;
cout<<"默认的两点是(0,0)和(1,1)"<<endl;
Point p1,p2(1,1);
Distance d;
cout<<"故两点之间的距离是:"<<d.output_distance(p1,p2)<<endl;
cout<<"现在重新定义两点:"<<endl;
cout<<"请输入第一个点的:"<<endl;
cout<<"横坐标:";
cin>>x1;
cout<<"纵坐标:";
cin>>y1;
cout<<"请输入第二个点的:"<<endl;
cout<<"横坐标:";
cin>>x2;
cout<<"纵坐标:";
cin>>y2;
p1.set_point(x1,y1);
p2.set_point(x2,y2);
cout<<"两点之间的距离是:"<<d.output_distance(p1,p2)<<endl;
}


c语言程序设计,大学生作业,急需,老师这周四就要,高手们帮帮忙啊!
楼上的和楼上的楼上的楼上是SB。辽工大的吧。需要盘文件输入输出、数组、循环、选择、除主函数外至少要用到3个自定义函数。你这分给的也太少了吧 以下(COPY):这个就可以:咱班都看过了。。(底下都写上!!!我记得有个地方他打错了,交之前让老师帮你改一改。这个交上去是很多个老师一起...

高手们,谁能帮我写一个C程序,作业急用!!
include <stdio.h> struct student { char name[10];char no[20];\/\/学号 float yinyu;float shuxue;float cyuyan;float tiyu;};\/\/输入学生信息 void inputstudent(student* st){ printf("请输入学生姓名:");scanf("%s",st->name);printf("学号:");scanf("%s",st->no);printf("英语:...

用C语言写一个一元二次方程,有点问题,高手们帮忙看看。
首先 为什么 会打印 无解 是因为你在 这里多加了 个; 号 之后 的printf 一定会执行 ,所以打印无解。delta > 0 是 一定的 关于X1 X2的值 我只能说是你编译器的问题。-5 +1 = -4 ;-4 \/2 = -2;我这里是没有错的 记得 给好评 不懂追问哈 ...

请C++高手们帮忙解答:关于使用string时可不可以用头文件#include<string...
也就是说,我们如果要用C++标准化了的C语言头文件,就得作如下的转换 include <stdio.h> --> #include <cstdio> include <stdlib.h> --> #include <cstdlib> include <string.h> --> #include <cstring> 还要提及的一点是,我在看C++标准库的时候,看到一个特殊情况 <memory.h> 和 <...

高手们请帮我看看如何用switch语句编好下面一题的c语言编程题!_百度...
void main(){ int a;float p,d,f;scanf("%f",&p);a=p\/100;switch(a){ case 0 : printf("%f",p);break;case 1 : printf("f=%f,p=%f,d=%f",p-p*(5.0\/100.0),p,p*(5.0\/100.0));break;...default :printf ("qing zai shu ru\\n");} 里面的语句块我就不再写了...

又是c语言复制多出字符的问题 高手们帮帮忙啊
因为你是用嵌套写的,所以fgetc(fp1)到文件尾时,还没由feof(fp1)判断就已经被putc至fp2了,如果想要避免,可以这样写:char a=fgetc(fp1);while(!feof(fp1)){ putc(a,fp2);a=fgetc(fp1);}

初学编程,八数码C语言深度搜索程序编译通不过,求高手们帮帮忙--急
帮你改好了,一共有8个错误:主要是:1. output()函数少了一个花括号 2. 一些该传地址的地方传了值 3. 有一个变量没定义:eight()函数中的open_link_point,我先改为open_point了 下面是改后的代码,改的地方我用\/\/\/注明了。include<stdio.h> include<math.h> include<stdlib.h> define...

编程高手们,救救我啊..能否帮我写出这个程序的代码吗?C++的
编程高手们,救救我啊..能否帮我写出这个程序的代码吗?C++的  我来答 首页 在问 全部问题 娱乐休闲 游戏 旅游 教育培训 金融财经 医疗...cin>>C; switch(C) { case 1:cout<<endl<<endl<<"原来的值为:"<<p[a].getch()<<endl; cout<<"请输入它的新值:"; cin>>B1;p[a].putch...

利用c++ 做二十四点游戏。请高手们帮忙!谢谢
scanf("%s%c",s1,&ch); \/*输入字符串压回车键*\/ change(s1,s); \/*调用change函数将中缀表达式s1转换为后缀表达式s*\/ result=computer(s); \/*计算后缀表达式的值,返回结果result *\/ if(result==24) \/*如果结果等于24*\/ text1("very good"); \/*调用函数text1显示字符串"very good"*\/ ...

喜欢音乐的高手们帮我来找一首歌
《做你的爱人》http:\/\/mp3.baidu.com\/m?f=ms&rn=&tn=baidump3&ct=134217728&word=%D7%F6%C4%E3%B5%C4%B0%AE%C8%CB&lm=-1 《做你的爱人》词曲:谢军 歌手:饶天亮 我时常一个人独自彷徨 也时常一个人独自流浪 我希望你能回心转意 再像从前那样的爱我 我知道你不会把我遗忘 也不会...

嘉荫县15246673351: 急求C++编程高手,编定以下程序
蔽晓美爱: 第一个用两个for循环就可以了..第一个算了平均值..第二个作一下判断.. 第二个题目,用文件读入即可... 第三个题目,用文件保存..和第二个一样可以用#include&lt;fstream&gt; ifstream ifile("a;xxk1.dat"); ofstream ofile("a:xxk1.dat"); 请分别像用cin cout一样使用它们...

嘉荫县15246673351: C++问题 请高手帮忙编出下面的程序
蔽晓美爱: #include<stdio.h> #include<string.h> int main() { char a[1000],b[100]; int h1,count=1,g,h2; gets(a); gets(b); h1=strlen(b); h2=strlen(a); for(int t=0;t<h2;t++) if(a[t]==b[0]) { for(int k=0;k<h1;k++) if(a[t+k]==b[k])g++; if(g==(h1))count++; g=0;} printf("%d",count); }

嘉荫县15246673351: 求C++方面的高手帮我看下这个小程序. -
蔽晓美爱: #include void main() {char c;int a=0,b=0,m=0,n=0;正确的程序是: #include int main() { char c; int a=0,...

嘉荫县15246673351: 求高手用C++编写下面程序
蔽晓美爱: /*输入一批学生某门课程考试的各题的分数,计算每个人的总分,统计各分数段0~49, 50~59, 60~69,70~79, 80~89, 90~100的人数及占总人数的百分比.要求输入:课程名称,考试日期,学生班号,学生姓名,学号,课程考试得分.输出要求:...

嘉荫县15246673351: C++高手解释以下程序 -
蔽晓美爱: (int *&a2)这是一个引用,即对传进去的参数a2进行引用,当程序对a2的值进行改变时,函数结束后,a2的值就被改变了.而(int *a1)中的a1只是形参,说白了就是把a1中的值传递进去而已.函数对a1进行改变的话,只是形式上进行变化,函数结束后,其实对a1的值并没有改变.这样的话,上面的程序就不用解释了吧~应该知道为什么了吧

嘉荫县15246673351: 求高手帮我填一下以下的C++程序,急需要的会万分感谢的!!急需要~(有好心人给我回答了不过还是不能解
蔽晓美爱: 我不是发给你了吗,在百度消息里,已经发过了 ,算了,在给你发一次: 第一题: #include &lt;iostream&gt; #include &lt;cmath&gt; #include &lt;stdio.h&gt; using namespace std; class Point { int x,y; static int count; public: Point(int xx = 0,int yy = 0)...

嘉荫县15246673351: 请C++高手帮我看下下面这段程序
蔽晓美爱: #include<iostream> using namespace std; class highstudent { public: highstudent(char *p="rabbish") { //strlen(p, name, sizeof(p)); strcpy(name, p); // 把p所指的字符串复制到name中 cout<<"我是"<<name<<endl; } ~highstudent() { // 析构函...

嘉荫县15246673351: c++高手进 以下程序找出数组中最大的元素及其下标,数组元素的值有键盘输入,请选择正确的答案. -
蔽晓美爱: c 逐个输入数组元素 a 控制循环次数 a 选择最大的,类似冒泡法的第一步 c 最大元素的值 c 最大元素的下标

嘉荫县15246673351: 请C++高手帮我分析下下面这段程序
蔽晓美爱: 基本都用到了,但有2小问题, 1:strcpy(name, p);数组大小要考虑一下出错处理(而且少用strcpy,多用一下memcpy) 2:collegestudent 这个数的成员Name 难道只一个值吗?

嘉荫县15246673351: 请帮我看一下以下C++程序有什么错误:(在vc++6.0中编译的) 谢谢! -
蔽晓美爱: 在VC6.0下没有错误.在VC++ 2005下,有错误.f.open("1.txt",ios::in|ios::nocreate);//改为:f.open("1.txt",ios::in...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网