新手关于C语言中类(Classes)的问题,求高手!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了新手关于C语言中类(Classes)的问题,求高手!相关的知识,希望对你有一定的参考价值。
#include<iostream.h>
class X
int x;
public:
Y()y=0;
Y(int yy)y=yy;
void prt()cout<<y;
;
void main()
X x(10),z;Y y(11);
z=x;z.prt()
z=y;z.prt()
输出结果是:100
我只有C语言基础,现在接触C++,还是一头雾水。特别是新加入class。我只是在网上了解了class的定义和使用。
我想问一下这个程序是怎么运行的?
class Y:public X是怎么个回事?定义了一个X类型的新class Y??
y()与y(int yy)是个怎么回事?
感激不尽!!!
学着C语言却要考C++,我也是醉了,任重而道远啊。。。。。。
using namespace std;
class X
int x; //定义类X的私有实例成员变量x
public:
X() x=0; //默认构造函数(无参数),将x初始化为0
X(int xx) x=xx; //重载的构造函数,将x初始化为xx
//虚函数,输出x的值,子类可以覆盖(重写)虚函数,从而实现多态
virtual void prt() cout<<x;
;
//类Y公共继承自类X,即Y是X的子类
class Y:public X
int y; //定义类Y的私有实例成员变量y
public:
//以下两行都是类Y的构造函数,它们都隐式调用了父类X
//的默认构造函数,以初始化父类的实例成员变量x(都初始化成0了)
Y() y=0;
Y(int yy) y=yy;
//这是覆盖(重写)父类的虚函数prt
void prt() cout<<y;
;
int main()
//x(10)会调用带一个参数的构造函数X(int xx),创建一个类X的对象x,
//x的成员变量x初始化为10
//z会调用默认构造函数X(),创建一个类X的对象z,
//z的成员变量x初始化为0
//y(11)会调用带一个参数的构造函数Y(int yy)(Y的),创建一个类Y的对象y,
//y的成员变量y初始化为11,同时通过调用父类X的默认构造函数,
//将父类的成员变量x初始化为0
X x(10),z;Y y(11);
//将x赋给z,调用z的成员函数prt,输出显示10
z=x;z.prt();
//将y赋给z,调用z的成员函数prt,输出显示0,
//因为调用的是父类X的prt,显示的是对象z的成员变量x的值
z=y;z.prt();
//以下新加的会输出显示11,
//因为调用的是子类Y的prt,显示的是对象y的成员变量y的值
y.prt();
cout<<endl;
system("PAUSE");
return EXIT_SUCCESS;
参考技术A class Y:public X
这个是类的继承
X是Y的基类。
y()与y(int yy) 是两个构造函数
这个是重载。
先找本书看看基础吧。 C和C++不一样的还是很多的。追问
算了,还是买本书吧,越到后面越觉得C语言和C++差别越来越大。C语言的知识已经赶不上C++了
本回答被提问者和网友采纳C语言问题,急求高手(05,4,44)
(44)有下列程序:
main( )
int num[4][4]=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,i,j;
for(i=0;i<4;i+ +)
for(j=0;j<i;j+ +)
printf("%4c",' ');
for(j=__;j<4;j+ +)
printf("%4d",num[i][j]);
printf("\n");
若要按下列形式输出数组右上半三角。
1 2 3 4
6 7 8
11 12
16
则在程序下划线处应填入的是( )。
A)i-1 B)i
C)i+1 D)4-i
为什么选B呢,第一个printf里那个空格是什么意思啊,谢谢
1 2 3 4 是num[0][0]开始到num[0][3] //当i=0时,j=0
6 7 8 是num[1][1]开始到num[1][3] //当i=1时,j=1
11 12 是num[2][2]开始到num[2][3] //当i=2时,j=2
16 是num[3][3]开始到num[3][3] //当i=3时,j=3 参考技术A 第一个printf输出的是每两个数字用一个空格作为分隔符。至于选B个人认为是控制数组行、列输出元素的个数。
以上是关于新手关于C语言中类(Classes)的问题,求高手!的主要内容,如果未能解决你的问题,请参考以下文章