Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当一个文本通过一个成员函数传递给构造函数时,为什么这个值没有分配给类的成员? 我是C++初学者。我在做建筑工人。我正在写一个简单的火车票预订程序。这是我的密码: #include <iostream> #include <stdlib.h> using namespace std; class Ticket { char* name; long PNR; Ticket(char *pname, long pnr):name(pname),PNR(pnr) { } public: Ticket() { name = NULL; PNR=0; } void booking() { char *n; n= new char[25]; cout << "Enter Your Name: "; cin >> n; Ticket(n,12345); cout << "Your Ticket is Booked." << endl; } void status() { long num; cout << "Enter PNR: "; cin >> num; if (num == PNR) cout << "Ticket is confirmed" << endl; else cout << "Ticket is not confirmed" << endl; } void print() { cout << "Your PNR is " << PNR << endl; cout << "The PNR is alloted to " << name << endl; } }; using namespace std; int main() { int option; Ticket pass1; book: cout << "Select an option: " << endl; cout << "1. Booking\t2. Status\t3.Print Info" << endl; cin >> option; switch(option) { case 1: pass1.booking(); break; case 2: pass1.status(); break; case 3: pass1.print(); break; default: cout << "Invalid Entry. Exiting" << endl; break; } cout << "Do you want to check another ticket?" << endl; cout <<"1. Yes\t2. No" << endl; cin >> option; switch(option) { case 1: goto book; break; case 2: default: cout << "Exiting" << endl; exit(0); } return 0; } #包括 #包括 使用名称空间std; 班票 { 字符*名称; 长PNR; 票证(字符*pname,长pnr):名称(pname),pnr(pnr) { } 公众: 票() { name=NULL; PNR=0; } 无效预订() { 字符*n; n=新字符[25]; cout>n; 车票(n,12345); 库特_C++_Class_Constructor_Member Functions_Function Call - Fatal编程技术网 n; 车票(n,12345); 库特,c++,class,constructor,member-functions,function-call,C++,Class,Constructor,Member Functions,Function Call" /> n; 车票(n,12345); 库特,c++,class,constructor,member-functions,function-call,C++,Class,Constructor,Member Functions,Function Call" />

当一个文本通过一个成员函数传递给构造函数时,为什么这个值没有分配给类的成员? 我是C++初学者。我在做建筑工人。我正在写一个简单的火车票预订程序。这是我的密码: #include <iostream> #include <stdlib.h> using namespace std; class Ticket { char* name; long PNR; Ticket(char *pname, long pnr):name(pname),PNR(pnr) { } public: Ticket() { name = NULL; PNR=0; } void booking() { char *n; n= new char[25]; cout << "Enter Your Name: "; cin >> n; Ticket(n,12345); cout << "Your Ticket is Booked." << endl; } void status() { long num; cout << "Enter PNR: "; cin >> num; if (num == PNR) cout << "Ticket is confirmed" << endl; else cout << "Ticket is not confirmed" << endl; } void print() { cout << "Your PNR is " << PNR << endl; cout << "The PNR is alloted to " << name << endl; } }; using namespace std; int main() { int option; Ticket pass1; book: cout << "Select an option: " << endl; cout << "1. Booking\t2. Status\t3.Print Info" << endl; cin >> option; switch(option) { case 1: pass1.booking(); break; case 2: pass1.status(); break; case 3: pass1.print(); break; default: cout << "Invalid Entry. Exiting" << endl; break; } cout << "Do you want to check another ticket?" << endl; cout <<"1. Yes\t2. No" << endl; cin >> option; switch(option) { case 1: goto book; break; case 2: default: cout << "Exiting" << endl; exit(0); } return 0; } #包括 #包括 使用名称空间std; 班票 { 字符*名称; 长PNR; 票证(字符*pname,长pnr):名称(pname),pnr(pnr) { } 公众: 票() { name=NULL; PNR=0; } 无效预订() { 字符*n; n=新字符[25]; cout>n; 车票(n,12345); 库特

当一个文本通过一个成员函数传递给构造函数时,为什么这个值没有分配给类的成员? 我是C++初学者。我在做建筑工人。我正在写一个简单的火车票预订程序。这是我的密码: #include <iostream> #include <stdlib.h> using namespace std; class Ticket { char* name; long PNR; Ticket(char *pname, long pnr):name(pname),PNR(pnr) { } public: Ticket() { name = NULL; PNR=0; } void booking() { char *n; n= new char[25]; cout << "Enter Your Name: "; cin >> n; Ticket(n,12345); cout << "Your Ticket is Booked." << endl; } void status() { long num; cout << "Enter PNR: "; cin >> num; if (num == PNR) cout << "Ticket is confirmed" << endl; else cout << "Ticket is not confirmed" << endl; } void print() { cout << "Your PNR is " << PNR << endl; cout << "The PNR is alloted to " << name << endl; } }; using namespace std; int main() { int option; Ticket pass1; book: cout << "Select an option: " << endl; cout << "1. Booking\t2. Status\t3.Print Info" << endl; cin >> option; switch(option) { case 1: pass1.booking(); break; case 2: pass1.status(); break; case 3: pass1.print(); break; default: cout << "Invalid Entry. Exiting" << endl; break; } cout << "Do you want to check another ticket?" << endl; cout <<"1. Yes\t2. No" << endl; cin >> option; switch(option) { case 1: goto book; break; case 2: default: cout << "Exiting" << endl; exit(0); } return 0; } #包括 #包括 使用名称空间std; 班票 { 字符*名称; 长PNR; 票证(字符*pname,长pnr):名称(pname),pnr(pnr) { } 公众: 票() { name=NULL; PNR=0; } 无效预订() { 字符*n; n=新字符[25]; cout>n; 车票(n,12345); 库特,c++,class,constructor,member-functions,function-call,C++,Class,Constructor,Member Functions,Function Call,不重新调用当前元素的构造函数,它会创建一个临时的票证,并用(n,12345)初始化,然后立即丢弃它 通常,只能构造一次对象。构造完成后,不能再次调用该对象的构造函数 相反,您可以使用成员变量的名称为其赋值: void booking() { PNR = 42; // This will change the member PNR of the current instance // ... } 不重新调用当前元素的构造函数,它会创建一个临时的票证,并用(n,12345)初始化

不重新调用当前元素的构造函数,它会创建一个临时的
票证
,并用
(n,12345)
初始化,然后立即丢弃它

通常,只能构造一次对象。构造完成后,不能再次调用该对象的构造函数

相反,您可以使用成员变量的名称为其赋值:

void booking() {
    PNR = 42;  // This will change the member PNR of the current instance
    // ...
}
不重新调用当前元素的构造函数,它会创建一个临时的
票证
,并用
(n,12345)
初始化,然后立即丢弃它

通常,只能构造一次对象。构造完成后,不能再次调用该对象的构造函数

相反,您可以使用成员变量的名称为其赋值:

void booking() {
    PNR = 42;  // This will change the member PNR of the current instance
    // ...
}
Ticket(n,12345);
正在创建一个临时
Ticket
,然后将其丢弃。它不会为当前
Ticket
设置成员变量。要设置变量
booking()
,如下所示

void booking()
{
    name = new int[25]
    cout << "Enter Your Name: ";
    cin  >> name;
    PNR = 12345;
    cout << "Your Ticket is Booked." << endl;
}
void booking()
{
名称=新整数[25]
姓名;
PNR=12345;
cout
Ticket(n,12345);
正在创建一个临时
Ticket
,然后将其丢弃。它不会为当前
Ticket
设置成员变量。要设置变量
booking()
应该如下所示

void booking()
{
    name = new int[25]
    cout << "Enter Your Name: ";
    cin  >> name;
    PNR = 12345;
    cout << "Your Ticket is Booked." << endl;
}
void booking()
{
名称=新整数[25]
姓名;
PNR=12345;

初学者须知:1.获得一本好书2.避免新建/删除(如果没有,请严格配对)您没有传递字符串文字。您传递的是指向可修改的
char
缓冲区的指针。此外,多次调用
booking
将导致内存泄漏。您应该使用
std::string
,这不仅是内存泄漏问题,而且您不会将自己的名称长度限制为24个字符(加上终止空值)如果你使用
std::getline(cin,string_var);
请摆脱那种可怕的
goto
调用。初学者注意:1.获得一本好书2.避免新建/删除(如果没有,请严格配对)您没有传递字符串文字。您传递的是指向可修改的
char
缓冲区的指针。此外,多次调用
booking
将导致内存泄漏。您应该使用
std::string
,这不仅是内存泄漏问题,而且您不会将自己的名称长度限制为24个字符(加上终止null)如果您使用
std::getline(cin,string_var)
,请摆脱那可怕的
goto
调用。