41、#define PI 3.14;//预定义不能有分号
44、void main()
{
Class cls;
cls. print(10,20);
cls. print(′c′,1);
cls. print(′x′,′y′);
cls. print(〃Hello!〃,0);
}//上面括号里的单引号应改为双引号,因为print函数的形参是用来接收字符串的
45、 Class * cls ;//z指针没有分配空间,在这一行下面加一句 cls=(Class*)malloc(sizeof(Class));
46、下面是完整的程序:
#include
void main()
{
int x=1;
int sum=0;
while(true)
{
if(x>100){
break;
}
if(x%7==0){
sum=sum+x;
}
x++;
}
cout<
48、完整程序:
class Class
{
private:
int * var;
public:
Class(int num);
~Class();
};
Class::Class(int num)
{
*var=num;
}
Class::~Class()
{
var=NULL;
}
50、程序如下:
#include
template
void f(double x,int y)
{
if(sizeof(T1)>sizeof(T2))
x=(T1)y;//这里是对x进行强制类型转换
else
y=(T2)x;
}
void main(){
double x=134.2;
int y=22;
f(x,y);
cout<<〃x=〃<
41题
#define PI 3.14;
理由:声明宏时不用分号,
应该修改为:
#define PI 3.14
44题
cls. print(′c′,1);
cls. print(′x′,′y′);
理由:单引号表示字符,应该改为双引号,因为参数类型是char*(字符串)。
应该修改为:
cls. print(“c”,1);
cls. print(“x”,“y”);
45题
Class * cls ;
理由:cls的类型是Class对象的指针,在没有初始化前调用实例方法会有异常。
应该修改为:
Class cls ;
46题(完整代码)
#include
void main()
{
int x=1;
int sum=0;
while(true)
{
if(x>100){
break;
}
if(x % 7 == 0){
sum=sum+x;
}
x++;
}
cout<
48题(完整代码)
class Class
{
private:
int * var;
public:
Class(int num);
~Class();
};
Class::Class(int num)
{
var = new int;
*var = num;
}
Class::~Class()
{
delete var; // 注意这儿需要delete,而不能将var置为NULL;
}
49题(完整代码)
#include
class Base
{
public:
virtual void Print() const {
cout<<〃Base::Print〃<
};
class ClassA:public Base
{
public:
void Print()const{cout<<〃ClassA::Print〃<
class ClassB:public Base
{
public:
void Print()const{cout<<〃ClassB::Print〃<
void Print(Base b)
{
b.Print();
}
void main()
{
ClassA a;
ClassB b;
Print(a);
Print(b);
}
50题(完整代码)
#include
template
void f(T1 x, T2 y)
{
if(sizeof(T1)>sizeof(T2))
x=(T1)y;
else
y=(T2)x;
}
void main(){
double x=134.2;
int y=22;
f(x,y);
cout<<〃x=〃<