没有打印;从理论上讲,我需要一个 main 还是应该在没有它的情况下工作?

Nothing prints; do I need a main or should it work without it, theoretically?

我不想问这个问题,但我已经尝试了 HOURS,但我无法弄明白。我是 C++ 的新手,无法弄清楚为什么 sprintf_s 不会在最后放出任何东西(或两者都放不出来)。基本上,Visual Studio 2019 年除了弹出 window 之外什么都没有发生。我知道这是一个简单的解决方案,但我会疯狂地想办法解决它。另外,我必须要有一个主电源还是没有它就可以工作?好吧,我的构造函数看起来还好吗?我在它下面有绿色的波浪形,但不确定如何修复它或者我是否可以忽略它。我感谢我能得到的所有帮助!谢谢!

//#include "stdafx.h" - commented out as I think this version of VS does 
//this automatically (I looked under precompiled headers and it was listed as "Precompiled Header File"
//and it wouldn't work unless I commented it out

#include <iostream>

using namespace std;

// Base Entree class
class Entree
{
protected:
    char _entree[10];
public:
    const char* getEntree()
    {
        return _entree;
    }
};


// Base Side class
class Side
{
protected:
    char _side[10];
public:
    char* getSide()
    {
        return _side;
    }
};

class Drink
{
protected:
    char _drink[10];
public:
    Drink()
    {
        cout << "\n Fill cup with soda" << endl;
        strcpy_s(_drink, "soda");
    }
    char* getDrink()
    {
        return _drink;
    }
};

// ADDED CODE:

class ComboMeal
{
private:
    Entree* entree;
    Side* side;
    Drink* drink;
    char _bag[100];

public:
    ComboMeal(const char* type)
        {
        sprintf_s(_bag, "/n %s meal combo: ", type);
        }
        void setEntree(Entree * e)
        {
            entree = e;
        }
        void setSide(Side * s)
        {
            side = s;
        }
        void setDrink(Drink * d)
        {
            drink = d;
        }
        const char* openMealBag()
        {
            sprintf_s(_bag, "%s, %s, %s, %s", _bag, entree->getEntree(), side->getSide(), drink->getDrink());
            return _bag;
        }
};
int main()
{   
}

正如评论中所说,在 C++ 中,执行的代码是 main 函数中的代码。当对应 class 的对象被创建时构造函数被调用,所以你至少应该有这样的东西:

int main(){
    ComboMeal combo("my type one");
    return 0;
}

一个更完整的例子是:

int main(){
    ComboMeal combo("my type one");
    combo.setEntree(new Entree);
    combo.setSide(new Side);
    combo.setDrink(new Drink);
    cout << combo.openMealBag() << endl;
    return 0;
}

(当然这会打印出乱码,因为新对象中的值没有设置)