什么是类的成员函数和非成员函数?

作者&投稿:肇澜 (若有异议请与网页底部的电邮联系)
什么是类的成员函数和非成员函数?~

类有成员变量和成员函数。而函数中,不是任何一个类的成员的函数,就是非成员函数。例如:
class A{
public:
void f1(){}; // 这个就是成员函数。
void f2(); // 这个也是成员函数声明,其实现在类的外部。
};
void A::f2(){} // 这个是成员函数的实现。
void f3(){}; // 这个就是非成员函数,它不属于A,也不属于任何一起其他的类。

内联函数
在类声明内定义内联函数

内联函数
  在C++中,用户可以创建实际上不调用的短函数,他们的代码在每次调用的程序行里得到扩展。这个过程类似于使用类似函数的宏。为使一个函数在程序行进行代码扩展而不被调用,只要在函数前面加上关键字inline即可。
  例如,在下面的程序,函数max()在行内扩展而不被调用:
#include using namespace std;inline int max(int a, int b){ return a>b?a:b;}int main(){ cout<<max(10,20); cout<<" "<<max(99,88);}  上面的程序等价于下面的程序:
#include using namespace std;int main(){ cout20?10:20); cout88>99:88);}  内联函数是C++的一个重要补充的原因是,他们能使程序员写出非常有效的代码。因为类一般要求几个经常被执行的接口函数,因此,这些函数的效率在C++中是非常重要的。我们知道,每次调用函数时,变元要进栈,各种寄存器内容要保存;函数返回时,又要恢复他们的内容。问题是这些指令要占用时间。但是,如果函数在行内扩展,上述那些操作就不存在了。当然,虽然函数行内扩展能产生较快的速度,但由于重复编码会产生较长的代码,因此最好只内联那些能明显影响程序性能的函数。
  inline对编译器是一种请求,而不是命令。编译器可以选择忽略它。还有,一些编译器不能内联所有类型的函数。例如,通常编译器不能内联递归函数。必须查阅自己的编译器用户手册以了解对内联的限制。如果一个函数不能被内联,它就被当作一个正常的函数调用。
  inline关键字不是C++的 C子集 的一部分,因此,C89没有定义它,然而,C99中增加了它。

  内联函数可以是类的成员。
class myclass{ int a,b;public: void init(int i,int j); void shou();};inline void myclass::init(int i,int j){ a = i; b = j;}inline void myclass::show(){ cout<<a<<" "<<b<<"
";}在类声明内定义内联函数
  在类声明内(大括号之内)定义内联函数是可能的。如果一个函数是在类声明内定义的,它将自动的转换成内联函数(如果可能的话)。没有必要(但不是错误)在函数声明的前面再加上关键字inline。
class myclass{ int a,b;public: //automatic inline void init(int i, int j){a=i;b=j;} void show(){cout<<a<<" "<<b<<"
";}}  构造函数和析构函数也可以是内联的。
  ——————————————————————————————————————————
  参考文献:
C++参考大全(第四版)

没有非成员函数的说法。
成员函数就是类内部的函数,可以使公有(public)的,私有(private)的,保护(protected)的。
你所指的非成员函数就应该是没有在类里定义的函数吧。


php中的类、对象、方法是指什么
php中的类是指具有共性事务的代表;对象是指某类事务的具体代表,也被称为实例;方法是指在类结构中创建的函数,也称为成员方法、成员函数。详细介绍:(推荐教程:php视频教程)类:class,是定义面向对象主体最外层结构,也是用来包裹主体数据和功能(函数),类是一类具有共性事务的代表,代表的是事务的...

什么是成员函数指针?(c++)
在C++中,指针是一个重要的概念,用于存储某个对象的地址。成员函数指针则是一种特殊的指针,它指向类的成员函数。成员函数是类的成员之一,用于实现类的功能。成员函数指针可以指向类的任何一个成员函数,并允许我们通过指针来调用该函数。这对于实现一些通用算法和回调函数非常有用。具体来说,成员函数...

c++中公有成员和私有成员的区别是什么
说得浅一点: 私有成员(包括数据和成员函数)只能被该类的成员函数和友元函数访问。公有成员(包括数据和成员函数)可以被任何函数访问。说得深一点: 私有成员和保护成员定义实现,公有成员定义接口。

::是什么意思?
M::f(s)就表示f(s)是类M的成员函数。2)类作用域符。例:声明了一个类A,类A里声明了一个成员函数void f(),但没有在类的声明里给 出f的定义,那么在类外定义f时, 就要写成void A::f(),表示这个f()函数是类A的成员函数。3)命名空间作用域符。表示引用成员函数及变量。

C++中::是什么意思?
是类作用域操作符“::”指明了成员函数所属的类。表示引用成员函数及变量,作用域成员运算符。在不同作用域内声明的变量可以同名,但如果局部变量和全局变量同名,在局部变量作用域内如何访问全局变量。例如:声明了一个类A,类A里声明了一个成员函数void f( ),但没有在类的声明里给出f的定义,...

c++类的成员包括哪两种,一个是成员函数另外一个是什么
类的成员包括成员函数和成员变量。除此之外,还区分是否是静态的,是否是常量,访问权限等。

类的成员一般地分成为哪两部分?这两部分有何区别
类的成员包括成员变量,成员函数两部分。其中:成员变量一般是数据,描述对象的属性、状态。成员函数定义了对象(可以发出)的行为或对象(可接受)的操作。

什么是类及类的实现包括什么?
类包含有属性和方法.属性就是这个类具有的数据成员,方法就是这个类的成员函数.类的声明就是声明这些属性和方法,告诉编译器这个类有哪些数据成员和成员函数.类的实现就是对这些数据成员进行操作,通过成员函数来操作.告诉编译器具体怎么操作数据成员,成员函数具体用来做什么的.类的应用是通过类生成对象,使用...

数据成员和成员函数都是什么
C++编程语言中的两个基本概念。数据成员和成员函数是C++编程语言中的两个基本概念,主要在类(class)这个数据结构中有所应用。以下是各自的定义:数据成员(DataMember):数据成员是类的一个部分,用于存储关于对象的信息。在类的内部定义,且可以是私有的(private)、受保护的(protected)或公有的(...

类和对象的成员函数
类的成员函数(简称类函数)是函数的一种,它的用法和作用和第4章介绍过的函数基本上是一样的,它也有返回值和函数类型,它与一般函数的区别只是:它是属于一个类的成员,出现在类体中。它可以被指定为private(私有的)、public (公用的)或protected(受保护的)。在使用类函数时,要注意调用它的权限(...

凌源市17695028773: 什么是类的成员函数和非成员函数? -
籍树中鑫: 没有非成员函数的说法.成员函数就是类内部的函数,可以使公有(public)的,私有(private)的,保护(protected)的.你所指的非成员函数就应该是没有在类里定义的函数吧.

凌源市17695028773: 什么是类的“成员函数”和“非成员函数”? -
籍树中鑫: 类有成员变量和成员函数.而函数中,不是任何一个类的成员的函数,就是非成员函数.例如: class A{ public:void f1(){}; // 这个就是成员函数.void f2(); // 这个也是成员函数声明,其实现在类的外部. }; void A::f2(){} // 这个是成员函数的实现. void f3(){}; // 这个就是非成员函数,它不属于A,也不属于任何一起其他的类.

凌源市17695028773: 什么是成员函数? -
籍树中鑫: 在类内写的 普通函数就是成员函数,分为const与非const operator关键字的函数是运算符重载函数 > -> >> <<等 friend 类名关键字的函数是友元函数 ~类名(){}是析构函数 类名(){}构造函数 类名(const 类名&对象名){}拷贝构造函数 类名& operator= (类名&对象名){}赋值构造函数 virtual 函数名(){} //虚函数

凌源市17695028773: 在C++里,请问什么是类的数据成员?什么是类的成员函数?最好能举个例子,谢谢! -
籍树中鑫: 类的数据成员:就是类中的一个实例变量 类的成员函数:就i是类中的一个实例函数 class demo{ public :void print();//类的成员函数 int age;//类的数据成员 }; 希望对你有用...

凌源市17695028773: 在C语言中,什么是类的静态成员?怎样定义静态成员?静态数据成员和静态成员函数的作用是什么? -
籍树中鑫: 静态成员函数是类的成员函数,该函数不属于该类申请的任何一个对象,而是所有该类成员共同共有的一个函数. 静态的成员变量用static修饰 举个例子给你,你们班里面有10个人(10个比如高一一班的对象),体育老师分给你们一个篮球(静...

凌源市17695028773: 类的成员函数是什么?作用? -
籍树中鑫: 类的成员函数就是类里面定义的一个函数,作用就是说明类的一些操作

凌源市17695028773: 类和对象的成员函数 -
籍树中鑫: 类的成员函数(简称类函数)是函数的一种,它的用法和作用和第4章介绍过的函数基本上是一样的,它也有返回值和函数类型, 它与一般函数的区别只是: 它是属于一个类的成员,出现在类体中. 它可以被指定为private(私有的)、public ...

凌源市17695028773: c++中类的成员函数和函数成员有什么区别 -
籍树中鑫: 一个意思,一般的说法是成员函数,但数据的说法是数据成员

凌源市17695028773: 类成员函数与普通全局函数有什么不同 -
籍树中鑫: 区别很大: 1.成员函数是面向对象的概念,所谓的成员函数,是指一个函数作为类的成员,公有成员、私有成员或者保护成员. 2.普通函数一般有两种传递方式,按类型传递和按值传递,也就是传指针和传返回值两种情况.成员函数一般是按类...

凌源市17695028773: 在C语言中,什么叫做非静态成员函数 -
籍树中鑫: 就是不是静态声明的成员函数 譬如:static void setsign();这样的声明在类的public中出现的话,setsign就是一个静态成员函数.另外静态成员函数只能使用类的静态数据成员(譬如有一个数据成员是static int x;)

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