30/09/2018, 21:50

Stoped working khi không return!

Chuyện là em viết code thế này

#include <iostream>

using namespace std;
class dautien {
public :
    string Tenbanno(string Tenban){

cout << Tenban;}
};
 main()
{
dautien thuchien;
 cout << thuchien.Tenbanno("Tenboban");
 cout << thuchien.Tenbanno("Tenmeban");
 cout << thuchien.Tenbanno("Tenongban");
    return 0;
}

Thì nó hiện dòng đầu tiên là “Tenboban” sau đó stoped working !
còn chuyển cout << Tenban thành return Tenban thì nó in ra màn hình cả 3 dòng không bị stoped working!
Tại sao dùng cout << lại bị vậy ạ? Em thử xóa cout << ở hành main mà vẫn bị!

GodOfGod viết 23:53 ngày 30/09/2018

Code này sẽ gặp warning từ lúc compile.

string Tenbanno(string Tenban){

cout << Tenban;}};

return type là string mà không có return này.
Vì bạn bỏ qua cái warning đó mà chạy nên gặp exception. cout một hàm mà hàm ko có giá trị.

cout << thuchien.Tenbanno("Tenboban");

Cách khắc phục
Như bạn nói, sửa thành return

Hưng viết 00:01 ngày 01/10/2018

Em mới học nên cũng không rõ, anh nói rõ return type là string mà không có return này. là sao ạ? Anh nói chi tiết giúp em với ạ!

GodOfGod viết 00:01 ngày 01/10/2018

string Tenbanno(string Tenban){

cout << Tenban;}};

trong code trên:

  • string là return type hay kiểu trả về.
  • Tenbanno là tên hàm
  • (string Tenban) là tham số

vì hàm của bạn có kiểu trả về là string nên trong code phải có lệnh trả về một giá trị kiểu string. ( return TenBan )

Hưng viết 23:57 ngày 30/09/2018

Hiểu rồi! Em cảm ơn !

hacked viết 23:54 ngày 30/09/2018

Hàm tenbanno bạn chỉ cần khai báo là void thôi mà?

Hưng viết 23:54 ngày 30/09/2018

Em dùng CodeBlocks, sửa thành void thì nó báo lỗi! Kiểu void là không trả về giá trị gì hết mà.

hacked viết 00:05 ngày 01/10/2018

Mấy dòng “cout<<” phía đưới bạn xóa đi.

GodOfGod viết 23:52 ngày 30/09/2018

Sửa thành void thì code trong hàm main sẽ thành cout << void, không được

GodOfGod viết 00:01 ngày 01/10/2018

Không dùng nhiều C++, nhưng chả hiểu tại sao nó không báo error luôn mà báo warning và cho chạy làm gì nhỉ

Nguyễn Hoàng Trung viết 23:50 ngày 30/09/2018

hàm main phải là int main chứ nhỉ :v return 0 mà

Bài liên quan
0