声明虚函数的一般格式如下:virtual函数类型函数名(参数表)其中,用关键词virtual声明的函数称为虚函数。如果一个成员函数被声明为虚函数,这就意味着该成员函数在派生类中可能有不同的实现。动态绑定只能通过指针或引用标识对象来调用虚函数。......
2023-11-07
声明函数模板的一般格式如下:
template<模板参数表>
函数返回值类型函数模板名(形参表)
函数模板定义由关键字template开头,表示声明一个模板。模板参数表写在尖括号<>中,参数一般由关键字class或typename后加一个标识符构成。Class和typename的意义相同,表示后面的标识符是一个参数类型,代表一个潜在的标准类型或用户定义的类型。如果有多个类型参数,则每个参数都要用class或typename引导,且参数之间用逗号隔开。在函数模板中,可以用模板参数表中的类型参数名表示返回值、数据形参和局部变量的类型。例如,定义max函数模板求两个数中的较大者。这里,两个数的类型没有固定,但显然为同一类型,故模板中用一个类型参数即可。函数模板定义如下:
函数模板的类型参数T泛指类型,如int、double等。T不仅可以用来说明形参a、b的类型,而且在函数模板定义体中可用T定义变量,例如:
T x,y,z;
函数模板的模板参数表中也可以包含非类型参数,例如:(www.chuimin.cn)
template<class T,int size>
T f1(T a)
函数模板f1除了带有参数类型T外,还带有一个int型参数size。
还需注意的是,在template语句与函数模板声明之间不允许有别的语句。如下面的声明是错误的:
可以看出,用函数模板比函数重载更方便,程序更简洁。但应注意函数模板只适用于函数的参数个数相同而类型不同且函数体相同的情况,如果参数的个数不同,则不能用函数模板。
有关C++程序设计基础教程的文章
声明虚函数的一般格式如下:virtual函数类型函数名(参数表)其中,用关键词virtual声明的函数称为虚函数。如果一个成员函数被声明为虚函数,这就意味着该成员函数在派生类中可能有不同的实现。动态绑定只能通过指针或引用标识对象来调用虚函数。......
2023-11-07
程序设计是指设计、编写和调试程序的方法与过程。由于程序是软件的本体,因此软件的质量主要通过程序的质量体现,因此,研究一种切实可行的程序设计方法至关重要。继承是面向对象程序设计方法的一个重要标志,利用继承机制可以大大提高程序的可重用性和可扩充性。......
2023-11-07
为此,C++提供了一个更好的方法,就是利用类的构造函数来初始化类的数据成员。构造函数具有如下几个特点:构造函数名与类名相同,且没有返回值,不能指定函数类型。构造函数通常被声明为公有属性,但它不能像其他成员函数那样被显式地调用,它是在创建对象时被系统自动调用的。例如,可以将例2.1的MyClass类扩展为MyClass2,使其包含两个构造函数:上述类中包含两个构造函数:一个没有参数,另一个有两个参数。......
2023-11-07
静态成员函数与静态数据成员类似,也是属于类的。与一般成员函数类似,静态成员函数也有访问限制,私有静态成员函数不能由外界访问。解:本程序的执行结果如下:s=5程序中定义对象a时,通过构造函数使静态数据成员n=2,在定义对象b时,通过构造函数使静态数据成员n=5,再执行MyClass2∷add()语句使全局变量s=5。这样共执行构造函数5次,n累计为5。......
2023-11-07
类模板的成员函数被认为是函数模板,也称为类属函数。因此,当给出一个类模板的成员函数的定义时,必须遵循函数模板的定义。在类模板中,可以用类型参数名表示数据成员的类型,也可以表示成员函数返回值、形参和局部变量的类型。类模板定义中的类型参数可带默认值。说明以下类模板的功能。......
2023-11-07
类中指定的访问权限对友元函数是无效的,因此把友元函数说明放在类的私有部分、公有部分、保护部分效果都一样。友元函数可定义在类外,也可在类内。程序的执行结果如下:n=324使用友元函数计算两点间的距离。......
2023-11-07
函数模板是不能直接执行的,需要实例化为模板函数后才能执行。模板函数的生成就是将函数模板的类型形参实例化的过程。当执行min时,便创建了该函数模板的一个实例,这个过程被称为函数模板实例化。图5.2函数模板的实例化在模板函数被实例化之前,必须在程序的某个地方首先声明它,这样,就可以到后面再实例化为模板函数。......
2023-11-07
throw、try和catch语句的一般语法如下:throw表达式;异常处理的执行过程如下:程序通过正常的顺序执行到达try语句块,然后执行try块内受保护的语句。对于fun语句,其捕获异常的过程是相似的。只要找到一个匹配的异常类型,后面的异常处理都将被忽略。......
2023-11-07
相关推荐