Какие есть отличия SourcePawn от C++

Haseek

йфя
Сообщения
472
Реакции
79
На сколько сильно SourcePawn отличается от C++? На сколько он проще C++? Какие есть отличия в синтаксисе?
 

Nekro

Терра инкогнита
Сообщения
4,042
Реакции
2,295
На сколько сильно SourcePawn отличается от C++? На сколько он проще C++? Какие есть отличия в синтаксисе?
Мне кажется хоть у меня и нет знаний в этих областях, что проще сказать где они похожи, чем в чём у них различия.
 

NaN

FPE_INTDIV_TRAP
Сообщения
1,513
Реакции
1,487
На сколько сильно SourcePawn отличается от C++? На сколько он проще C++? Какие есть отличия в синтаксисе?
проще как минимум отсутствием ООП. Синтаксис по-сути тот же, за исключением каких-то своих приколов SP и C++.
 

DENFER

Пишу плагины за два биг тести и картошку фри..
Сообщения
260
Реакции
289
проще как минимум отсутствием ООП. Синтаксис по-сути тот же, за исключением каких-то своих приколов SP и C++.
Я не сказал бы, что отсутствие ООП - это проще. Наоборот - ООП, как раз-таки упрощает структуру язык и делает его куда понятней )
Что касается языков, то порог вхождения в плюсы будет гораздо сложнее, чем в скриптовый, только потому что, пешка выполняет огромное кол-во процедур вместо вас, работа с дескрипторами, очищает динамическую память и т.п.
Могу привести пример: написание плагина на плюсах, то бишь метамод плагин и обычный плагин на сурсмоде - очевидно, что на соусе куда проще писать, чем метамоде.
Что касается синтаксиса, то виртуальная машина соуспешки написана на C++, и разработчики тянутся приблизить синтаксис к нему. Вряд ли ООП будет явно реализовано в sp, но это была бы просто бомба.
Еще дополню тем, что C++ - многофункциональный язык, который применяется везде, что нельзя сказать о sp, его возможности заканчиваются играми на движке соус.
Подведу итог тем, что SourcePawn небольшое подмножество входящее в С++ => C++ >>(намного больше) SourcePawn => отличий в синтаксисе не особо много.
 

RusJJ

Доброе утро девачьки
Сообщения
2,582
Реакции
1,075
@DENFER, SourcePawn проще C++. В плане наличия функций, не возможностей реализации.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,924
  • Команда форума
  • #8
отсутствие ООП - это проще.
50/50. Если не знаешь ООП - да, это упрощает язык. Но вкусив однажды дар объектно-ориентированного программирования - всё, жить без этого не можешь.

виртуальная машина соуспешки написана на C++, и разработчики тянутся приблизить синтаксис к нему
Вторая часть предложения - неправда. Двандер говорил о том, что он хочет получить из SP что-то похожее на C#.

его возможности заканчиваются играми на движке соус
Я просто оставлю это тут.
 

DENFER

Пишу плагины за два биг тести и картошку фри..
Сообщения
260
Реакции
289
@DENFER, SourcePawn проще C++. В плане наличия функций, не возможностей реализации.
Так я и говорю, что C++ намного сложнее SourcePawn, показал же >>.
Что касается языков, то порог вхождения в плюсы будет гораздо сложнее, чем в скриптовый
Подведу итог тем, что SourcePawn небольшое подмножество входящее в С++ => C++ >>(намного больше) SourcePawn
Вторая часть предложения - неправда. Двандер говорил о том, что он хочет получить из SP что-то похожее на C#.
Данный вывод я сделал, на личных наблюдениях. Так как сурспавн не имеет сборщика мусора и нет ярко выраженного ООП. На данный момент, тот сп который мы имеем, не похож на C#, я бы исправил свой старый комментарий и дополнил его тем, что сурспавн, который мы имеем больше похож на чистый С, со своими особенностями, а если вообще не ошибиться, то это язык, который относится к языкам с C-подобным синтаксисом.
 

DENFER

Пишу плагины за два биг тести и картошку фри..
Сообщения
260
Реакции
289
Так я же не констатирую факт, просто говорю, что если правильно понимать и уметь применять концепцию ООП, тот от этого язык не станет сложнее. Для новичка, это ООП даже близко не сдалось, если есть, то ОК, оно не будет мозолить глаза, как например тоже Java, которое уже встречает программиста в типичной программе "Hello, World!" с элементами ООП, хотя первый семестр студент даже и понятия не имел, что действительно с этим сталкивался.
Да, если вспомнить, какое извращенное ООП представлено в сп, то мысль проскочить такая, вполне может:
проще как минимум отсутствием ООП
Сообщения автоматически склеены:

Я просто оставлю это тут.
Вспоминаю своего товарища, который на паскале написал игру.. С довольно неплохим интерфейсом.
 

Xummuk97

Programmer
Сообщения
309
Реакции
75
C++ в первую очередь наследует от C работу с памятью, т.е. указатели. В SourcePawn на это аллергия.
Нет перегрузки функций.
Нет достойного ООП, кроме enum struct и methodmap, которые и отдалённо не напоминают C++ с классами.
Нет шаблонов.
Нет лямбды.
Внешние файлы не делятся на интерфейс (.h) и реализацию интерфейса (.cpp) файлы.
Также может быть я что-то упустил, описал достаточно поверхностно.
 

rejchev

менеджер клоунов
Сообщения
1,669
Реакции
1,291
Внешние файлы не делятся на интерфейс (.h) и реализацию интерфейса (.cpp) файлы.
Скорей это смысловой вопрос, нежели отличительная особенность, поскольку к каждому проекту подключается цепочка inc'ов с объявленными функциями.

Вы всегда можете объявить функции, переменные и т.д.... в отдельном заголовочном файле и определить их уже в интерфейсе.

Аля:
simple.h:
// #include <next.h>

void foo();
int bar(int a = 0, int b = 0);

int c;

const int a_const = 3;


some.sp:
#include "simple.h"

public void OnPluginStart()
{
    c = bar(.b = 3);
}

int bar(int a = 0, int b = 0)
{
    foo();
    return a+b;
}

void foo()
{
    LogMessage("function foo(%i)", a_const);
}
 
Последнее редактирование:
Сверху Снизу