美文网首页
C++函数声明了返回值而不写return的后果

C++函数声明了返回值而不写return的后果

作者: krystollia | 来源:发表于2018-03-12 10:17 被阅读0次

编译器使用bazel,mac系统下。

程序1:

vector <string> test() {
     cout << "test" << endl;
}

int main() {
    test();
    cout << "finished test" << endl;
}

运行时崩溃,输出内容:

test
Segmentation fault: 11

将vector换成stl的其他容器 pair,map 也崩溃。

程序2:

class A {
  vector<string> s;
};
A test() {
     cout << "test" << endl;
}
int main() {
    test();
    cout << "finished test" << endl;
}

运行时崩溃。

程序3:

class A {
};
A test() {
     cout << "test" << endl;
}

int main() {
    test();
    cout << "finished test" << endl;
}

正常运行。

程序4:

string test() {
     cout << "test" << endl;
}

int main() {
    test();
    cout << "finished test" << endl;
}

正常运行。

疑问一: 这样的程序应该在编译时报错?
疑问二: 返回值是vector或者是包含了vector的自定义类时,做了什么操作导致程序运行时崩溃?

相关文章

  • C++函数声明了返回值而不写return的后果

    编译器使用bazel,mac系统下。 程序1: 运行时崩溃,输出内容: 将vector换成stl的其他容器 pai...

  • return

    返回值return 调用函数可以返回东西 return有特点: 如果不写return,默认返回undefined ...

  • go 入门(二)2018-07-19

    函数 函数的形参类型放在参数后边,函数的返回值类型写在形参的后边,void不写 多值返回 命名返回值return可...

  • 返回值和参数收集

    返回值和参数收集 返回值 return语句 中断函数执行并将对象返回到函数调用位置 如果没有写return语句,则...

  • 函数二

    1. 函数的返回值 • 返回值就是函数执行以后返回的结果 • 通过return来指定函数的返回值 • return...

  • 08 函数(补充)

    1.函数的返回值 python中每个函数都有返回值,返回值就是return后面的值,如果函数中没有return,那...

  • 7. 函数使用的一些注意点

    1. 函数返回值 没有return的话,默认返回值为None; 直接return列表: return ['...

  • Python函数笔记

    定义函数 基础语法 如果没有写return语句,函数执行之后会返回None 函数的返回值 可以有多个返回值,但是多...

  • 函数2

    1.函数的返回值 在python中,每个函数都有返回值。当函数体中存在return语句的时候,返回值为return...

  • 【第16天】python全栈从入门到放弃

    1. 函数的知识回顾 以功能为导向,封装一个功能 2 函数的返回值return return:中止函数,并将返回值...

网友评论

      本文标题:C++函数声明了返回值而不写return的后果

      本文链接:https://www.haomeiwen.com/subject/kjtnfftx.html