分数类对象构造函数不可以直接返回分数表达式,因为在C++的语法中规定了构造函数不可以有返回值,所以说我们无法直接在分数类对象的构造方法之中直接返回分数表达式。
若想要返回分数表达式,只能通过写其他的函数来达到返回分数表达式的目的,只要我们写好了相应的函数,可以在分数类对象的构造函数中调用产生分数表达式的函数,以此得到分数表达式。
同时需要注意的是构造方法之中不能用return返回一个值,同时它也不含有返回值。
C++语言的特点:
1、与C语言的兼容性,C++与C语言完全兼容,C语言的绝大部分内容可以直接用于C++的程序设计,用C语言编写的程序可以不加修改地用于C++。
2、C++可以实现数据的封装和隐藏。类是支持数据封装的工具,对象则是数据封装的实现。C++通过建立用户定义类支持数据封装和数据隐藏。
3、支持继承和重用,在C++现有类的基础上可以声明新类型,这就是继承和重用的思想。同时还有多态的特点。
C++构造函数特征和调用注意:
构造函数与类具有相同的名称,不包含返回值,不能在方法中使用return,当创建构造函数,编译器不再次创建无参构造函数,不是void类型。
构造函数的调用是强制性的,一旦在类中定义了构造函数,那么创建对象时就一定要调用,不调用是错误的。如果有多个重载的构造函数,那么创建对象时提供的实参必须和其中的一个构造函数匹配;反过来说,创建对象时只有一个构造函数会被调用。
-C++
简单的说,函数就是一个算法,有不有返回值是跟这个函数做什么的有关系。
一般情况下,求和这类的就要返回值,比如
int add(int a,int b)
{
return a+b;//这就返回a+b的和,用函数的时候,你只要传a,b的值就得了
}
用的时候这样:
int s=add(100,200); //就把100+200也就是300的值赋给s了
这种情况就是相当于你去A地做买东西,你肯定得拿东西回来。你拿回来的东西也就是返回值
-------------------------------------------
还有些不用返回值的,比如,输出,或者给有地址的变量赋值等 这些函数前面就可以用void 表示无返回值,当然你也可以返回你想返回的。比如说成功或者失败返回true or false也可以随意返回一个int型的 1或者0
比如:
void pri(int i)
{
printf("%d",i);//这个就是打印一个整型的i出来
}
这种就像你去A地不干什么,就去那儿吼两句,也就不用拿什么回来了。
还有种给有地址的变量赋值。那就相当于你去a地寄了一封信,也不用什么什么回来。
啊,打得手累,我就这样理解了。给是清楚点了,呵呵
例如你要计算5+3=,这个就需要返回值啦,但你要是排列字符之类的,就不需要返回值,因为它是对字符进行 *** 作,没有数字。
你那叫什么语法啊!函数返回值当然就和普通函数返回值一样,这和是不是类没有关系。类的函数返回了,就和类没有关系了
double area= rgetArea();
cout<<"面积为:"<<area<<endl;
肯定可以使用!
什么情况下不能使用?除非你返回的是临时变量的地址,这样函数结束临时变量被销毁,拿着它的地址用肯定会出问题。
直接返回临时变量,相当于按值传递,返回值只起到把值复制到外部变量的作用,复制完成后,临时变量虽然被销毁了,但你用的外部变量已经有了临时变量的值,而且和临时变量无关。
这和是不是基本类型没有关系
这还不容易么,在Main函数中创建对象的话,一般都是想完成单例测试,想测试自己类中方法的可行性,但前提是要有这个类的对象才可以去访问该类的非静态方法啊。这时候就会在主函数中创建类的对象了。
而在类中提供一个公开的静态的方法,返回的是该类的对象的话,肯定是给外部提供一个接口啊,让外部的类如果想引用你这个类的对象的话,它又不可以直接去new,也跟你这个类没有父子关系。让你这个类就必须提供一个接口,其实也就是一个对外公开(public)的静态(static)的方法来给外部调用,然后在方法里返回你该类的实例即可,这样外部获得你这个类的实例之后,就可以访问你这个类的变量以及其他方法啦。
希望对你用帮助,如果不明白还可以继续交流,谢谢
既然方法的返回值是对象,说明在返回该对象之前,已经完成了类的实例化 *** 作,而要想完成实例化类的 *** 作,必须保证在该脚本中可以访问到该类,所以,该类是可以访问到的,并且已经被实例化。你担心的这些步骤是已经被执行的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)