C++里的返回void类型的函数与无返回值的函数的区别是什么?
《C++编程思想》的一句话:“构造函数与析构函数是两个非常特殊的函数:他们没有返回值。这与返回值为void的函数显然不同。后者虽然也不返回任何值,但还是可以让他做点别的事...
《C++编程思想》的一句话:“ 构造函数与析构函数是两个非常特殊的函数:他们没有返回值。这与返回值为void的函数显然不同。后者虽然也不返回任何值,但还是可以让他做点别的事情."
展开
5个回答
展开全部
构造函数和析构函数是用于创建和摧毁对象,所以不需要返回值。下面是两种函数的区别。
【普通函数】
通俗的讲,就是通过传入“数据”(某些情况不需要输入),计算之后,“输出”需要的值,或者执行所需的操作。所以普通函数的重点在于“输出”。如果该函数的确不需要“输出”数据,那么通过void来进行标记,就可以和其他函数进行区分。
【构造函数和析构函数】
主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值。重点在于“创建”和“摧毁”,而不是“输出”。所以不需要返回值,也就不需要通过void进行标记。
【普通函数】
通俗的讲,就是通过传入“数据”(某些情况不需要输入),计算之后,“输出”需要的值,或者执行所需的操作。所以普通函数的重点在于“输出”。如果该函数的确不需要“输出”数据,那么通过void来进行标记,就可以和其他函数进行区分。
【构造函数和析构函数】
主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值。重点在于“创建”和“摧毁”,而不是“输出”。所以不需要返回值,也就不需要通过void进行标记。
展开全部
2011-10-31 12:03没有返回类型和设返回值类型为void的区别
规定,如果你现在自己做一个新语言的编译器,也可以规定构造函数必须加上void,或者一个特殊的返回值。 那么为什么构造函数没有返回值呢,主要是为了区分构造函数和其它方法。其实,你可以尝试在你的构造函数前加上void,你会发现编译可以通过,但是编译器把它认为是方法,而不是构造函数,当然也无法在new的时候自动调用。 下面有一个例子,你可以测试看看:public class MyPrint{ public void MyPrint() { //这是一个方法,如果去掉void就是构造函数 System.out.println("method"); } public test() { //提示错误,方法声明错误,必须加上返回值 } public static void main(String[] args) { MyPrint mp=new MyPrint(); //构造函数自动调用 mp.MyPrint(); //方法必须显示调用 } } 本文来自知道问答http://zhidao.baidu.com/question/135828798.html
规定,如果你现在自己做一个新语言的编译器,也可以规定构造函数必须加上void,或者一个特殊的返回值。 那么为什么构造函数没有返回值呢,主要是为了区分构造函数和其它方法。其实,你可以尝试在你的构造函数前加上void,你会发现编译可以通过,但是编译器把它认为是方法,而不是构造函数,当然也无法在new的时候自动调用。 下面有一个例子,你可以测试看看:public class MyPrint{ public void MyPrint() { //这是一个方法,如果去掉void就是构造函数 System.out.println("method"); } public test() { //提示错误,方法声明错误,必须加上返回值 } public static void main(String[] args) { MyPrint mp=new MyPrint(); //构造函数自动调用 mp.MyPrint(); //方法必须显示调用 } } 本文来自知道问答http://zhidao.baidu.com/question/135828798.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void 代表空类型,可以认为不返回东西
无返回值,即什么都不写,默认返回int数据类型。
无返回值,即什么都不写,默认返回int数据类型。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void类型就是无返回值类型的,如果你缺省,在函数名前面不加void的话,系统默认的是int类型的,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没有区别。
除非void *,这个是指针类型,返回必须是指针或地址。
除非void *,这个是指针类型,返回必须是指针或地址。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询