Почему общедоступный ref в определении класса c ++ - PullRequest
15 голосов
/ 05 августа 2009

Прежде всего, я хочу пояснить, что я новичок в C ++, так что это может быть простой и несколько очевидный вопрос. В книге C ++, которую я читаю под названием C ++ Primer, класс определяется следующим образом:

class classname{
public:

private:

};

Однако в VS2008 компилятору это не понравилось. Но, добавив public ref перед классом, как в:

public ref class classname{

это прошло в компиляторе. Может кто-нибудь объяснить, в чем разница между определением только с классом и с общедоступным классом ссылки? Я был бы очень признателен.

Ответы [ 4 ]

21 голосов
/ 05 августа 2009

Синтаксис ref - это расширение Microsoft, используемое только в Managed C ++. Судя по всему, вы ошибочно включили компилятор /clr при создании вашего проекта. Если все, что вам нужно, - это создавать настоящие программы на C ++, то вы захотите отменить это.

5 голосов
/ 05 августа 2009

Вы читаете книгу под названием C ++ Primer, которая учит языку программирования C ++ , тогда как вы пытаетесь создать программу, сообщающую VC ++, что код находится на C ++ / CLI другой язык программирования ....

3 голосов
/ 05 августа 2009

Вы ( изменить: и другие пользователи) отметили этот вопрос на:

Однако вашей первой целью должно быть научиться настраивать Visual C ++ для программирования на языке по вашему выбору, C ++ .

Как обычно, хороший способ найти ответ на этот вопрос - набрать его на странице «Задать вопрос» и посмотреть, какие связанные вопросы предлагаются. Я думаю, что это лучший: компиляция "стандартного" C ++ в visual studio (не .net) .

1 голос
/ 05 августа 2009

Вы изучаете стандартный язык C / C ++? если ответ да, то этот синтаксис касается языка Microsoft C ++ / CLI ...

посмотрите на: C ++ / CLI

Попробуйте вместо этого использовать Eclipse с расширением C ++. Он поставляется со всем необходимым для создания и выполнения программы STANDARD C ++!

Eclipse download

...