【问题标题】:Syntax trouble with inline access specifiers内联访问说明符的语法问题
【发布时间】:2017-01-15 00:46:07
【问题描述】:

我对 C++ 中的面向对象编程非常陌生,当访问说明符与变量、类或函数内联使用时,我在语法方面遇到了一些困难。下面的代码不是我的。它来自this 帖子。从线程的受欢迎程度来看,我相信其他人可以编译它。但是我遇到了困难。

public class CartEntry
{
    public float Price;
    public int Quantity;
}

public class CartContents
{
    public CartEntry[] items;
}

public class Order
{
    private CartContents cart;
    private float salesTax;

    public Order(CartContents cart, float salesTax)
    {
        this.cart = cart;
        this.salesTax = salesTax;
    }

    public float OrderTotal()
    {
        float cartTotal = 0;
        for (int i = 0; i < cart.items.Length; i++)
        {
            cartTotal += cart.items[i].Price * cart.items[i].Quantity;
        }
        cartTotal += cartTotal*salesTax;
        return cartTotal;
    }
}

我尝试了一个简单的类来识别问题

这样编译:

#include <iostream>
class C{
    int i;
    };
int main(){}

这不是:

#include <iostream>
class C{
    public int i;
    };
int main(){}

也不是这样:

#include <iostream>
public class C{
    int i;
    };
int main(){}

这样做:

#include <iostream>
class C{
    public: int i;
    };
int main(){}

这不是:

#include <iostream>
public: class C{
    int i;
    };
int main(){}

我正在使用没有任何构建标志的 GNU c++ 编译器 V6.3.1。如果这个语法不正确,为什么我会经常看到它演示。如果正确,我是否缺少编译器选项、头文件或其他内容?

【问题讨论】:

标签: c++ class oop


【解决方案1】:

答案很简单,您的示例帖子讨论的是 Java 而不是 C++。访问说明符和 this 指针(以及许多其他项)的语法不同。

【讨论】:

  • 有趣。我从未尝试过Java。我从来没有意识到这些语言看起来有多么相似。谢谢!
  • @mreff555 是的,Java 中的很多语法都类似于 C。不过,我建议您在将来发表帖子之前先进行所有研究。 :)
  • 为了记录,我指的是这个帖子。 stackoverflow.com/questions/226977/…。不是melpomene提到的那个。帖子或标签中没有明确提到 Java,我发现该帖子的搜索字符串为“c++ 松散耦合”。我同意在发布之前进行研究很重要。但作为一个没有 Java 经验的新程序员,我真的无从知晓。
猜你喜欢
  • 2017-09-17
  • 2018-06-22
  • 2011-01-31
  • 2014-01-11
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 2011-01-28
  • 2021-11-27
相关资源
最近更新 更多