1

即使我从未调用过函数'Bike::Bike(Bike *)',是什么导致了错误?

错误:找不到“Bike::Bike(Bike *)”的匹配项


#include<iostream.h>
#include<conio.h>

class Bike
{
    Bike()
    {
        cout<<"\nIn Bike const.";
    }

    public: static Bike * getBike();
};

Bike * Bike :: getBike()
{
    cout<<"\nIn getBike";
    return new Bike();
}

void main()
{
    Bike b = Bike::getBike();
}
4

1 回答 1

4

您正在尝试从转换Bike*为非标量类型Bike

getBike()返回一个指向Bike

所以

Bike *b = Bike::getBike();
     ^ use pointer

看起来你正在使用有十年历史的编译器可能是 Turbo C++

void main不是合法的 C++ 使用int main

另外,请确保删除由new

于 2013-09-15T06:00:01.403 回答