c++ - 将包含主函数的 C 程序包装到 C++ 类中,

标签 c++ c class wrapper program-entry-point

我最近被要求将一个包含主函数的 C 程序包装到一个 C++ 类中,但我没有看到有效执行此操作的一般方法。

比如我的C程序是

#include<stdio.h>
#include<stdlib.h>
int main(int argc, char * argv[]) {
        int i, sum = 0;

        if (argc != 3) {
                printf("Two numbers are needed.\n");
                exit(1);
        }
        printf("The sum is :%d \n ", atoi(argv[1])+atoi(argv[2]));


}

如何将这个主要功能包装到 C++ 类中?我模糊的想法是用C++构造函数来模拟main的argc和argv,但是我不知道怎么做。你能帮忙吗?

最佳答案

没那么难。只需将转换委托(delegate)给 main() 函数,并传递正确的值:

SumComputer computer(atoi(argv[1]), atoi(argv[2]));

printf("The sum is :%d \n ", computer.sum());

你有一个带有构造函数的类,例如 SumComputer(const int a, const int b) 和一个 int sum() const 函数。

您还可以拥有一个具有简单构造函数和更复杂的 sum() 函数的对象,甚至可能使用 varargs .

关于c++ - 将包含主函数的 C 程序包装到 C++ 类中,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59202665/

相关文章:

c++ map 不返回 end() 即使它应该

c++ - 分配取消引用的字符指针真的不可能吗?

c++ - Std::stringstream move 分配在 gcc 中不起作用

python - 类实例实现,初始化实例——来自SICP python

c++ - 使用模板和构造函数从两个派生类进行多重继承

c - 保存通用链表的哈希集 保存通用链表

c - 制作结构的深拷贝...制作结构的浅拷贝

c - 使用 readdir_r 读取目录

c++ - 从返回抽象类的函数返回的NULL

c++ - 如何称呼某事。 else 除了带有 new[] 运算符的类的默认构造函数之外