Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;可以';不能用C实现吗? 我已经知道C++是C的超级集合,通过创建对象提供实时的实现。此外,C++是面向对象的,因为它丰富了面向对象的概念。p> 什么是C++中所有不能在C?< /P >中实现的概念? 有人说我们不能在C语言中过度编写方法,那么我们怎么能拥有不同风格的printf()? 例如printf(“sachin”)将打印sachin和printf(“%d,%s”,计数,名称)将打印1,sachin假设count是一个整数,其值为1,name是一个字符数组,初始化为“sachin” 有些人说数据抽象是用C++实现的,那么结构如何?_C++_C - Fatal编程技术网

C++;可以';不能用C实现吗? 我已经知道C++是C的超级集合,通过创建对象提供实时的实现。此外,C++是面向对象的,因为它丰富了面向对象的概念。p> 什么是C++中所有不能在C?< /P >中实现的概念? 有人说我们不能在C语言中过度编写方法,那么我们怎么能拥有不同风格的printf()? 例如printf(“sachin”)将打印sachin和printf(“%d,%s”,计数,名称)将打印1,sachin假设count是一个整数,其值为1,name是一个字符数组,初始化为“sachin” 有些人说数据抽象是用C++实现的,那么结构如何?

C++;可以';不能用C实现吗? 我已经知道C++是C的超级集合,通过创建对象提供实时的实现。此外,C++是面向对象的,因为它丰富了面向对象的概念。p> 什么是C++中所有不能在C?< /P >中实现的概念? 有人说我们不能在C语言中过度编写方法,那么我们怎么能拥有不同风格的printf()? 例如printf(“sachin”)将打印sachin和printf(“%d,%s”,计数,名称)将打印1,sachin假设count是一个整数,其值为1,name是一个字符数组,初始化为“sachin” 有些人说数据抽象是用C++实现的,那么结构如何?,c++,c,C++,C,C标准库中只有一个printf()。其他变体通过更改名称来实现,例如sprintf(),fprintf()等等 结构不能隐藏实现,C中没有private数据。当然,您可以通过不显示指针指向的内容来隐藏数据,就像标准库对FILE*所做的那样。因此有数据抽象,但不是作为struct构造的直接特征 而且,不能在C中重载运算符,因此a+b总是意味着某种加法正在发生。在C++中,根据所涉及的对象的类型,任何事情都可能发生。 注意,这意味着(微妙地)C中的+实际上被覆盖int+int与float+int不同

C标准库中只有一个
printf()
。其他变体通过更改名称来实现,例如
sprintf()
fprintf()
等等

  • 结构不能隐藏实现,C中没有
    private
    数据。当然,您可以通过不显示指针指向的内容来隐藏数据,就像标准库对FILE*所做的那样。因此有数据抽象,但不是作为
    struct
    构造的直接特征

  • 而且,不能在C中重载运算符,因此
    a+b
    总是意味着某种加法正在发生。在C++中,根据所涉及的对象的类型,任何事情都可能发生。


    注意,这意味着(微妙地)C中的
    +
    实际上被
    覆盖<例如,code>int+int
    float+int
    不同。但是你不能做那种重写,这只是编译器的一个问题。

    不应该有太多的东西,因为早期C++编译器确实从C++源代码中产生C源代码。基本上,您可以在汇编程序中完成所有操作,但不想这样做。

    printf使用的是可变长度参数列表,而不是重载版本的函数

    C结构没有构造函数,并且无法从其他结构继承它们只是一种方便的方法来处理分组变量

    C不是OO语言,也没有OO语言的任何特征

    曾说过,你可以用C代码模拟C++功能,但是,C++在编译时将为你做所有的工作

    UL>

  • 所有其他都是“容易”伪造的:

    < p>嗯,如果你不打算用C++实现C++编译器,你可以用C++做成千上万的事情,但不能用C来做。
    • C++有类。类具有构造函数和析构函数,它们在初始化或描述对象(超出范围或使用delete关键字)时自动调用代码
    • 类定义层次结构。您可以扩展一个类。(遗产)
    • C++支持多态性。这意味着您可以定义虚拟方法。编译器将根据对象的类型选择要调用的方法
    • C++支持运行时信息
    • 可以使用C++异常。

    虽然你可以在C中模仿上面的大部分内容,但是你需要依靠约定并手动完成工作,而C++编译器则为你做这项工作。p> 和如何。

    一个与OOP无关的功能是,如果正确使用,它可以成为真正的击键保护程序。

    函数重载

    什么是C++中的所有概念 这不能在C中实现吗

    <>这是一个奇怪的问题,因为任何C++中可以表达的概念都可以用C语言来表达。即使是C++的功能,也可以用各种各样的反人类犯罪来实现。 真正的区别可以归结为两件事:编译器同意执行什么,以及语言提供了什么样的语法便利

    关于编译器执行,在C++中,编译器将不允许您直接从类或类的朋友外部访问私有数据成员。在C语言中,编译器不会强制执行这一点;您将不得不依赖API文档来区分“私有”数据和“公共可访问”数据

    和语法方便性,C++提供了C中没有找到的各种便利,例如运算符重载、引用、自动对象初始化和破坏(构造函数/析构函数的形式)、异常和自动堆栈解卷、对多态性的内置支持等。


    基本上,C++中所表达的任何概念都可以用C表示;这只是一个问题,编译器将在多大程度上帮助您表达某个概念,以及编译器提供了多大的语法便利性。由于C++是一种新的语言,它比C中的发音和口哨都要多,因此使得某些概念的表达更容易。

    < P>这里的一些回答者认为,用C++代码产生的大多数东西也可以用C来产生,并有足够的抱负。这在某些部分是正确的,但有些事情本质上是不可能实现的,除非您修改C编译器以偏离标准

    可伪造:

    • (指向子结构中父结构的指针)
    • 多态性(使用一组函数指针伪造vtable)
    • 数据封装(不透明的子结构,其实现未在公共接口中公开)
    不可能:

    • (也可以称为预处理器步骤2)
    • 通过参数(一些人试图用省略号来模仿这一点,但从未真正接近)
    • (构造函数和析构函数在C++中自动调用,因此在它们的范围内安全地处理堆栈资源)
    • (在C语言中,你几乎可以施放任何东西)
    麦汁