成员函数有哪些(C++中的空类,编译器默认可以产生哪些成员函数)
本文目录
- C++中的空类,编译器默认可以产生哪些成员函数
- 成员函数是什么
- 什么是成员函数
- cwnd有哪些成员函数
- 在C++里,请问什么是类的数据成员什么是类的成员函数最好能举个例子,谢谢!
- C++ 空类,默认产生哪些成员函数
- Object11个成员函数 是那些
- 计算机中的成员函数指的是什么
C++中的空类,编译器默认可以产生哪些成员函数
一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,如果你写 class Empty{}; 就相当于: class Empty { public: Empty(); Empty(const Empty&); ~Empty(); Empty& operator=(const Empty& rhs); Empty* operator&(); const Empty* operator&() const; }; 需要注意的是只有当你需要用到这些函数的时候,编译器才会去定义它们。
成员函数是什么
转:成员函数相当于C或C++中的函数。你应该用如下的方式说明一个成员函数:Type name (Parameter)//function body注意:每一个成员函数必须返回一个值或声明返回为空(void)。它返回类型的说明告诉编译器它将返回什么类型的值。在某些情况下,成员函数需要表示它是否成功的完成了它的工作,此时返回类型通常为布尔型的。参数表是用逗号分开的一组变量,它将为成员函数提供所需信息。 下面例子中定义了一个成员函数。通过它,你的矩形类可以计算自己的面积了:int getArea(int w,int h){ int a; a=w*h; return a;} 另外,矩形还需要对自己进行描绘,因此它需要成员函数drawRect(),此时,你的矩形类的定义将如下所示: public class DrwRect { public static void main(String args) { class Rectangle { int width,height,area; public Rectangle(int w,int h) { width=w; height=h; area=getArea(w,h); } protected int getArea(int w,int h) { int a; a=w*h; return a; } public void drawRect() { int i,j; for(i=width;i》0;i--) System.out.print("#"); System.out.print("") ; for(i=height-2;i》0;i--) System.out.print("#"); for(j=width-2;i》0;j--) System.out.print(""); System.out.print("#"); for(i=width;i》0;i--) System.out.print("#"); System.out.print(""); } } //Rectangle int w=Integer.valueOf(args).intValue(); int h=Integer.valueOf(args).intValue(); Rectangle myrect=new Rectangle(w,h); myrect.drawRect(); } } 上例中最后一个“#”号后面还有一个System.out.print("")这是由于这个成员函数在上一行没有结束而且缓冲区没有溢出时将不把输出结果写屏。若你使用print成员函数,却没有得到输出,这时仔细确认一下你是否以""来结束你的输出流。2:不同类型的成员函数 在上例的成员函数声明中你需要注意两点:getArea()定义为private型,drawRect()定义为public型。public型意味着任何类都可以调用它。private型,它只能被所声明的类内部调用。这些说明类型同样适用于数据变量。 若有人想改变一个私有变量,通常要引用下面的成员函数:public void setWidth(int w){ width=w;} 注意:在Java中,protected只是作为关键字出现,而没有相应的功能。3:成员函数的重载 假如你必须在不同情况下发送不同的信息给同一个成员函数的话,该怎么办呢?你可以通过对此成员函数说明多个版本(version)的方法来实现重载。重载的本质是创建了一个新的成员函数:你只需给它一个不同的参数列表(parameterlist),如下例所示:void get Area(int w,int h);void get Area(float w,float h); 在第二种情况下,成员函数get Area()接受两个浮点变量作为它的参数,编译器根据调用时的不同参数来决定该调用哪一种成员函数,假如你把两个整数提供给成员函数,你就调用第一个成员函数;假如你把两个浮点数提供给成员函数,第二个成员函数就被调用。4:静态成员 除了public、private和protected以外,你还可以把成员说明为static(静态)。static修饰符表明一个变量或成员函数对所有类的实例都是相同的,你也许想使用一个所有Rectangle类都可以使用的变量,来说明该类的版本(version),假如你把它说明成一个static,那么该变量将对该类的所有实例都是一样的,如:static int version=1; 静态成员函数和静态变量的优点就在于他们能在没有创建类的任何一个实例的情况下被引用,引用时在“.”域前,可直接使用类名而无须使用对象名。例如,drawRect成员函数使用了System.out.println成员函数,但实际上你却未曾创建一个某个System类的对象,这正是因为out是System类的一个静态变量,所以你可以直接使用这个成员函数而无须定义一个System对象。5:构造和析构成员函数 类有一个特殊的成员函数叫做构造成员函数,它通常用于初始化类的数据成员。在创建对象时,会自动调用类的构造成员函数。Java中的构造成员函数必须与该类具有相同的名字,另外,构造成员函数一般都应用public类型来说明,这样才能在程序任意的位置创建类的实例--对象。 下面是一个Rectangle类的构造成员函数,它带有两个参数,分别表示矩形的长和宽: public Rectangle(int w,int h) { width=w; height=h; area=getArea(w,h); } 除了构造成员函数以外,类还提供了析构成员函数,当对象被从内存中删除时,该成员函数将会被自动调用。通常,在析构成员函数内,你可以填写用来回收对象内部的动态空间的代码。
什么是成员函数
就是一个类(class)里面所定义的函数例如class A{public: void B();private: int C();protected: bool D(int i);};那么,B(),C(),D(int)都是A的成员函数
cwnd有哪些成员函数
用来管理对话框控件的CWnd成员函数 CheckDlgButton 选中或不选中按钮控件。 CheckRadioButton 选择一个指定的单选按钮并使同组内的其它单选按钮不被选择。 DlgDirList 往一个列表框中添加文件、目录或驱动器的列表。 DlgDirListComboBox 往一个组合框中的列表框内添加文件、目录或驱动器的列表。 DlgDirSelect 从一个列表框中获得当前选择的文件、目录或驱动器。 DlgDirSelectBomboBox 从一个组合框中获得当前选择的文件、目录或驱动器。 GetCheckedRadioButton 返回指定的单选按钮组中被选择的单选按钮的ID。 GetDlgItem 返回一个指向一给定的控件的临时对象的指针。 GetDlgItemInt 返回在一个指定的控件中由正文表示的数字值。 GetDlgItemText 获得在一个控件内显示的正文。 GetNextDlgGroupItem 返回一个指向一组控件内的下一个或上一个控件的临时对象的指针。 GetNextDlgTabItem 返回下一个tab顺序的控件的临时对象的指针。 IsDlgButtonChecked 返回一个按钮控件的状态。 SendDlgItemMessage 把一个消息传送给一个控件。 SetDlgItemInt 将一个整数转换为正文,并将此正文赋给控件。 SetDlgItemText 设置一个控件显示的正文。
在C++里,请问什么是类的数据成员什么是类的成员函数最好能举个例子,谢谢!
类的数据成员:就是类中的一个实例变量类的成员函数:就i是类中的一个实例函数class demo{public :void print();//类的成员函数int age;//类的数据成员};希望对你有用...
C++ 空类,默认产生哪些成员函数
。 020202 默认构造函数、默认拷贝构造函数、默认析构函数、默认赋值运算符 这四个是我们通常大都知道的。但是除了这四个,还有两个,那就是取址运算符和 取址运算符 const即总共有六个函数。020202 一个示例如下: 1:class Empty 2:02 3: { 4:02 5:public: 6:02 7: Empty(); // 缺省构造函数 8:02 9: Empty( const Empty& ); // 拷贝构造函数 10:02 11: ~Empty(); // 析构函数 12:02 13: Empty& operator=( const Empty& ); // 赋值运算符 14:02 15: Empty* operator&(); // 取址运算符 16:02 17:const Empty* operator&() const; // 取址运算符 const 18:02 19: };02 但是,C++默认生成的函数,只有在被需要的时候,才会产生。即当我们定义一个类,而不创建类的对象时,就不会创建类的构造函数、析构函数等。021.对于一个类X,如果一个构造函数的第一个参数是下列之一:020202 a) X&020202 b) const X&020202 c) volatile X&020202 d) const volatile X&020202 且没有其他参数或其他参数都有默认值,那么这个函数是拷贝构造函数。020202 X::X(const X&); //是拷贝构造函数020202 X::X(X&, int=1); //是拷贝构造函数022.类中可以存在超过一个拷贝构造函数,class X {public:0202020202 X(const X&);0202020202 X(X&);0202020202020202020202 // OK};注意,如果一个类中只存在一个参数为X&的拷贝构造函数,那么就不能使用const X或volatile X的对象实行拷贝初始化。class X {public:02020202 X();02020202 X(X&);};const X cx;02020202020202 X x = cx;020202 // error020202 如果一个类中没有定义拷贝构造函数,那么编译器会自动产生一个默认的拷贝构造函数。020202 这个默认的参数可能为X::X(const X&)或X::X(X&),由编译器根据上下文决定选择哪一个。02测试代码如下: 1:#include 《iostream》 2:usingnamespace std; 3:02 4:class X { 5:public: 6: X() { cout 《《 "X()" 《《 endl;} 7: X(X& x, int a = 1) {cout 《《 "X(X&)" 《《 endl;} 8: X(const X& x) {cout 《《 "const X(X&)" 《《 endl;} 9: X(volatile X& x) {cout 《《 "volatile X(X&)" 《《 endl;} 10: }; 11:02 12:int main(int argc, char** argv) { 13: X x1; 14: X x2(x1); 15:const X x3; 16: X x4(x3); 17:volatile X x5; 18: X x6(x55; 19:return 0; 20: }运行结果:而如果注释掉上面的8 和9行(即取消const 和volatile 拷贝构造函数),会编译错误,如下:020202 默认拷贝构造函数的行为如下:020202 默认的拷贝构造函数执行的顺序与其他用户定义的构造函数相同,执行先父类后子类的构造。020202 拷贝构造函数对类中每一个数据成员执行成员拷贝(memberwise Copy)的动作。020202 a)如果数据成员为某一个类的实例,那么调用此类的拷贝构造函数。020202 b)如果数据成员是一个数组,对数组的每一个执行按位拷贝。020202 c)如果数据成员是一个数量,如int,double,那么调用系统内建的赋值运算符对其进行赋值。02023. 拷贝构造函数不能由成员函数模版生成。struct X{02020202020202020202020202 template《typename T》02020202020202020202020202 X( const T& );020202 // NOT copy ctor, T can’t be X020202020202 template《typename T》02020202020202020202020202 perator=( const T& ); // NOT copy ass’t, T can’t be X02020202020202 };02020202020202 原因很简单,成员函数模版并不改变语言的规则,而语言的规则说,如果程序需要一个拷贝构造函数而你没有声明它,那么编译器会为你自动生成一个。所以成员函数模版并不会阻止编译器生成拷贝构造函数, 赋值运算
Object11个成员函数 是那些
数据成员和成员函数是一个类的两个基本的属性。成员函数可以调用数据成员,数据成员按照不同要求设为private、public和protected。一般的,会将数据成员设为private,意为供类本身的数据成员访问。
计算机中的成员函数指的是什么
计算机中的成员函数描述的是类的行为,是程序算法的实现部分,是对封装的数据进行操作的方法。它的具体定义:成员函数的原型要写在类体中,原型说明了函数的参数表和返回值类型。而函数的定义一般在类外面,也可以直接在类内部定义。前者与普通函数不同的是,实现成员函数时要指明类的名称,具体形式为:返回值类型 类名 ::函数成员名(参数表){函数体};而后者一般为一些短小的函数(5行以内),也就是内联函数。具体的所属关系如下:各类函数中:构造函数、析构函数、拷贝初始化构造函数等是类的成员函数。class A{public:void B();private:int C();protected:bool D(int i);};那么,B(),C(),D(int)都是A的成员函数
更多文章:
java连接sqlserver数据库教程(如何用java sqlserver数据库)
2024年7月19日 07:33
编程代码大全c语言(用C语言编写程序,调用函数求一个圆柱体的表面积和体积)
2024年10月16日 02:20
cad初学者简单图纸(CAD初学入门者怎么进行查看CAD图纸文件有什么技巧吗)
2024年6月30日 03:35
windows官网制作u盘启动盘(怎么制作win10 u盘启动盘)
2024年7月24日 09:06
elementor(为什么在elementor官网注册不了账号,老是提示密码)
2024年7月22日 13:15
多元线性回归例题(什么是多元线性回归模型多元线性回归模型和一元线性回归模型相比有什么特点如何)
2024年6月29日 12:41
群晖wordpress教程(我们公司弄了一台群晖NAS ,怎么登陆这个NAS)
2024年5月1日 08:12
execution failure in flash(刷BIOS时遇到这个东东,是什么意思)
2024年10月20日 19:55