有两个对象的类

时间:2015-07-23 14:49:16

标签: c++ class object

此代码适用于第一个实例,但对于第二个实例,它不起作用 输入: poorva 17 26 拉朱 18 28 对于第二个对象,即raju,它没有采取名称和滚动否,并显示一些垃圾值这里是ideone链接https://ideone.com/uxwMAc

#include<bits/stdc++.h>
using namespace std;

class student
{
    int roll;
    int age;
    char name[20];

public:
    void getData();
    void showData();

};

void student::getData()
{
    char n[20];
    int a,r;
    cout<<"enter name of student \n";
    gets(name);
    cout<<"enter age of student \n";
    cin>>age;
    cout<<"enter roll no of student \n";
    cin>>roll;

}

void student::showData()
{
    cout<<"details are \n\n";
    cout<<"name is :";
    puts(name);
    cout<<"age is "<<age<<endl;
    cout<<"roll number is "<<roll<<endl;
}

int main()
{
    student poorva ;
    student raju ;
    //for poorva
    poorva.getData();
    poorva.showData();
    //for raju
    raju.getData();
    raju.showData();
    return 0;
 }

2 个答案:

答案 0 :(得分:1)

putsgets是来自<cstdio>的C派生函数。 cincout是来自<iostream>的C ++流。不要混合它们,当它们在没有协调的情况下读取(或写入)相同的基础流时,它们之间的交互性很差。

请尝试使用cin.getline,然后完全删除puts。理想情况下,也可以用std::string替换固定字符数组。

哦,不要#include<bits/stdc++.h>。这是一个实现细节。无论你何时认为直接使用它是合理的,学习C ++是一个不好的地方,你应该停止使用它(也许在这里命名并羞辱它)。

您的代码应该以

开头
#include <iostream>

代替。

答案 1 :(得分:-3)

以下

Student raju =new Student () ;

虽然这应该有效。 与pooja相同