Pull to refresh

Comments 9

Какие-то Getter и Setter у вас скучные, а как-же non-static методы.
Согласен, изъянов много, просто, по прошествии пяти минут, потерял интерес к этой теме
Не спалось: скучные Getter и Setter теперь non-static методы.
сколько бы не писали статей на Хабре о property в C++ на C++ =), они никогда не станут популярны и не сделают код ясней, все предпочитают вместо магического, скрывающего за собой дополнительные действия, кода

props.String = "habr";

понятное и простое

props.setString("habr");
На мой взгляд, куда проще так:

mov dword ptr [props.String], offset string "habr"

Property в C++ хотят те, кто использовали их в других языках и не могут отказаться от этого удобства.

Хотя, конечно, никакими дополнительными классами, шаблонами или макросами из С++ не сделать C#.
Кстати, простое и понятное, на первый взгляд, в C++ всегда может оказаться чем то типа:

class PerverseProxy
{
public:
    PerverseProxy( const char *str )
    {
        cout << "Never trust C++" << endl;
    }
};

class Perverse
{
public:
    void setString( const PerverseProxy &p ){}
};

int main()
{
    Perverse props;
    props.setString( "habr" ); // simply, huh?
}


И это даже без учета макросов.
Теперь не шагу без explicit конструкторов )
Sign up to leave a comment.

Articles