#c
#c
Вопрос:
Я начинающий программист на C и пытаюсь работать в школьной лаборатории. Ниже я вставил оболочку программы, над которой я работаю. В основном, я создаю экземпляр объекта, car1
который принадлежит class Velocity
. Когда я пытаюсь использовать этот экземпляр с функцией mpsConverter
, я получаю сообщение об ошибке, указывающее, что выражение должно иметь тип class. Мы делали похожие примеры в классе, и этот формат работал нормально. Есть идеи? Если это неподходящий форум для подобных простых вопросов, пожалуйста, укажите мне правильное направление на более подходящий.
Спасибо, Эл
// P1_2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include "conio.h"
using namespace std;
class Velocity
{
private:
int mpsInput; // input value: meters per second (mps)
int kmphInput; // input value: km per hour
int mphOutput; // output value: comverted value of km per hour to miles per hour (mph)
public:
int kmphOutput; // output value: converted value of mps to km per hour
Velocity();
void mpsConverter(int speedKmph);
void mphConverter();
~Velocity();
};
Velocity::Velocity() // Constructor
{
cout << "The initial is text is displayed when an object in the class Velocity is Instantiated." << endl;
}
void Velocity::mpsConverter(int speedKmph) // convert KM per hour into meters per second (mps)
{
kmphOutput = (speedKmph * 2);
}
void Velocity::mphConverter() // convert KM per hour into miles per hour (mph)
{
}
Velocity::~Velocity() // Destructor
{
}
int main()
{
Velocity car1();
car1.mpsConverter(2);
getch();
return 0;
}
Ответ №1:
Velocity car1();
Приведенное выше утверждение не является созданием экземпляра car1
типа Velocity
. Вы пытаетесь вызвать, объявить функцию, car1()
возвращаемый тип которой Velocity
равен. Поскольку экземпляр не создан —
car1.mpsConverter(2); // This statement is giving you error stating mpsConverter(2)
// can only be called on class types.
Velocity car1 ; // This is the right way of instance creation.
Комментарии:
1. Спасибо, я внесу изменения и продолжу.
2. На самом деле, никакая функция не вызывается. Оператор Velocity car1(); объявляет функцию car1 типа Velocity ().