возврат 'указателя', который требуется, чтобы быть сохраненным интеллектуальным указателем

Чтобы решить эту проблему, вам нужно зафиксировать заглавные буквы в ваших полях и методах в вашем классе Users в соответствии с Соглашениями об именах Java . Таким образом, ваш класс модели должен выглядеть следующим образом:

public class Users {
    String studentName, rollNumber;

    public Users(){}

    public Users(String studentName, String rollNumber) {
        this.studentName = studentName;
        this.rollNumber = rollNumber;
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public String getRollNumber() {
        return rollNumber;
    }

    public void setRollNumber(String rollNumber) {
        this.rollNumber = rollNumber;
    }
}

Удалите старые данные, добавьте новые данные, и все будет работать нормально.

9
задан Evan Teran 10 March 2009 в 18:35
поделиться

2 ответа

Используя std::auto_ptr хорошая практика, на самом деле такой пример был предложен Bjarne Stroustrup.

Семантика перемещения auto_ptr дает Вам правильные инструменты для контакта с ним.

Например:

auto_ptr<Foo> make_foo()
{
    return auto_ptr<Foo>(new Foo);
}

Foo *raw_pointer=make_foo().release();
shared_ptr<Foo> shared_pointer=make_foo();
auto_ptr<Foo> auto_pointer=make_foo();

Если Вы возвращаетесь shared_ptr Вы не можете нейтрализация к нормальному указателю, с auto_ptr Вы можете. Можно всегда обновлять auto_ptr к общему, но не другому направлению.

Другой важный момент, shared_ptr использует атомарный подсчет ссылок, который намного медленнее что простое и все же полностью эффективное задание это auto_ptr делает.

P.S.: scoped_ptr просто версия auto_ptr для poors---это - non-copyable и не имеет значения по умолчанию constuctor. Это больше похоже на "менее запутывающую" версию auto_ptr, по сравнению с shared_ptr это не находится в tr1. Обычно там не очень преимущества использования scoped_ptr auto_ptr

11
ответ дан 4 December 2019 в 13:49
поделиться

Если Вы создаете фабрику, это в порядке, что Вы просто возвращаете указатель. И пользователь Вашей фабрики может принять свое собственное решение, как к и куда поместить этот указатель.
Если необходимо осуществить для использования интеллектуального указателя, необходимо ограничить выбор, поскольку Вы не хотите, чтобы они использовали "неправильные".
Так повышение:: shared_ptr. Но лучше к определению типа это затем к MyClassPtr или MyClass:: ptr.
Однако, фабрики они похожи "новые". Когда я хочу, я поместил результат новых в станд.:: auto_ptr. Но я не хочу быть вынужденным назвать "выпуск" всеми временами, когда я не хочу интеллектуального указателя.

3
ответ дан 4 December 2019 в 13:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: