Форум программистов, компьютерный форум CyberForum.ru

Как продолжить? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 26, средняя оценка - 4.96
oIITiMicT
 Аватар для oIITiMicT
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 17
22.05.2011, 21:47     Как продолжить? #1
Здравствуйте!
Есть огромное желание изучить с++... В интернете наткнулся на неплохие видеоуроки по visual c++ от teachvideo, может кто видел? Если вкратце, то там рассказываются только азы, и то не все. Так вот, как продолжить? И еще один вопрос, какой платформой лучше всего пользоваться?
З.Ы: пожалуйста не удаляйте тему...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.05.2011, 21:47     Как продолжить?
Посмотрите здесь:

C++ С чего продолжить......
Можно ли продолжить считывать в поток после ^Z ? C++
C++ Продолжить последовательность 1, 11
Продолжить (y\n) ? C++
Продолжить програму C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dampir_sanek
149 / 147 / 21
Регистрация: 09.02.2010
Сообщений: 407
30.05.2011, 17:55     Как продолжить? #41
Casper-SC, тогда если Вы пользовались уже имеете опыт программирования, то лучше изать С++ по книгам Герберта Шилдта.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
30.05.2011, 18:05     Как продолжить? #42
Знание плюсов по сути заключается не в знании синтаксиса, а в знании стандартной библиотеки. А по ней есть отдельные книги, не уступающие в объёме книгам по синтаксису (хотя и в них есть информация по STL, но не в той мере, в какой хотелось бы).
Casper-SC
 Аватар для Casper-SC
3464 / 1683 / 173
Регистрация: 27.03.2010
Сообщений: 4,824
Записей в блоге: 1
30.05.2011, 18:43     Как продолжить? #43
Цитата Сообщение от silent_1991 Посмотреть сообщение
Знание плюсов по сути заключается не в знании синтаксиса, а в знании стандартной библиотеки. А по ней есть отдельные книги, не уступающие в объёме книгам по синтаксису (хотя и в них есть информация по STL, но не в той мере, в какой хотелось бы).
Ну без знания синтаксиса, нет смысла пытаться осваивать работу с стандартной библиотекой. Вообще какие библиотеки там учить надо?
Посоветуйте какую нибудь книгу, в которой описаны эти библиотеки. В будущем почитаю, попрактикуюсь в написании программ. Думаю и автор темы из ответа на этот вопрос почерпнёт для себя полезное.


Цитата Сообщение от Despice Посмотреть сообщение
ну помоему за 21 день разве что синтаксис можно выучить, а не научится програмировать на языке
Поначалу не мог врубиться как же создать свой класс (не дочитав до этого в книге, но очень хотел побыстрей понять смотря примеры на форуме). И ещё не привычно отсутствие подсветки кода как в C#. Видно на скриншоте.
Например одна программа на C# и С++:
Cat.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#pragma once
namespace UserClasses
{
    class Cat
    {
    private:
        unsigned int age;
        unsigned int weight;
 
    public:
        Cat(void);
        Cat(unsigned int age, unsigned int weight);
        ~Cat(void);
 
        unsigned int getAge() const;
        void setAge(unsigned int newAge);
 
        unsigned int getWeight() const;
        void setWeight(unsigned int newWeight);
 
        void Meow();
    };
}

Cat.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "StdAfx.h"
#include "Cat.h"
 
namespace UserClasses
{
    Cat::Cat(void)
    {
        age = 0;
        weight = 0;
    }
 
    Cat::Cat(unsigned int Age, unsigned int Weight)
    {
        age = Age;
        weight = Weight;
    }
 
    Cat::~Cat(void)
    {
    }
 
    unsigned int Cat::getAge() const //const означает, что метод не может изменять значения класса
    {
        return age;
    }
 
    void Cat::setAge(unsigned int newAge)
    {
        age = newAge;
    }
 
    unsigned int Cat::getWeight() const
    {
        return weight;
    }
 
    void Cat::setWeight(unsigned int newWeight)
    {
        weight = newWeight;
    }
 
    void Cat::Meow()
    {
        std::cout << "Мяу" << std::endl; // =))). Мда-а-а
    }
}

Тут выполнение программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include "Cat.h"
 
using namespace std;
using namespace UserClasses; 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian");
 
    Cat cat(3, 5);
    cat.Meow();
    cout << "Возраст кошки: " << cat.getAge() << "\nВес кошки: " << cat.getWeight() << endl;
 
    Cat *cat2;
    cat2 = new Cat(7, 4);
    cout << "Возраст кошки: " << cat2->getAge() << "\nВес кошки: " << cat2->getWeight() << endl;
    delete cat2;
 
    system("pause");
    return 0;
}


А вот так на C# (с комментариями к коду)
Cat.cs
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System; //как в С++ using namespace
 
namespace ConsApp
{
    class Cat
    {
        //Поля
        uint age; //По умолчанию и так private
        private uint weight; //но можно указать явно
 
        //Конструкторы
        public Cat() //конструктор без параметров
        {
            age = 0;
            weight = 0; //хотя по умолчанию эти поля всё равно получают значения 0, можно и не присваивать их в конструкторе
        }
 
        public Cat(uint age, uint Weight) //конструктор с параметрами
        {
            this.age = age; //this явно указывает, что это поле класса, а не переданное в параметре значение
            weight = Weight; //так как поле класса и переданное значение отличаются, то можно не указывать this, но можно и указать, ничего не меняется
        }
 
        //Свойства
        //Ниже видны XML комментарии к свойствам
 
        /// <summary>
        /// Вес
        /// </summary>
        public uint Weight
        {
            get { return weight; }
            set { weight = value; }
        }
 
        /// <summary>
        /// Возраст
        /// </summary>
        public uint Age //можно конечно сделать по два метода доступа к каждому полю, но проще использовать свойства
        {
            get { return age; }
            set { age = value; }
        }
 
        public void Meow()
        {
            Console.WriteLine("Мяу");
        }
    }
}

Выполнение программы
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
 
namespace ConsApp
{
    class Program
    {
        static void Main(string[] args) //точка входа в приложение должна быть методом класса. В C# нету функций, чистый ООП.
        {
            Cat cat = new Cat(5, 7);
            cat.Meow();
            Console.Write("Возраст кошки: {0}\nВес кошки: {1}", cat.Age, cat.Weight);
            Console.ReadKey(); //Чтобы окно не закрылось сразу
        }
    }
}


На скриншоте видно зачем нужны XML комментарии.
Миниатюры
Как продолжить?  
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
30.05.2011, 18:47     Как продолжить? #44
Цитата Сообщение от Casper-SC Посмотреть сообщение
Вообще какие библиотеки там учить надо?
STL, Boost(самая стндартная из не стандартных ), Qt(формашлепство) - это так, для начала
Casper-SC
 Аватар для Casper-SC
3464 / 1683 / 173
Регистрация: 27.03.2010
Сообщений: 4,824
Записей в блоге: 1
30.05.2011, 18:51     Как продолжить? #45
Цитата Сообщение от asics Посмотреть сообщение
STL, Boost(самая стндартная из не стандартных ), Qt(формашлепство) - это так, для начала
STL как-то подключать надо к проекту? Или это она и используется (ну всякие #include <iostream>)?
Вообще что это за стандартные функции, все эти #include <iostream> и ему подобное. Откуда это всё берётся?

Добавлено через 1 минуту
То есть STL надо юзать с самого начала? Типа можно смело использовать во всех проектах, так как это стандартная библиотека и должна быть знакома всем?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
30.05.2011, 18:52     Как продолжить? #46
Цитата Сообщение от Casper-SC Посмотреть сообщение
Посоветуйте какую нибудь книгу, в которой описаны эти библиотеки.
STL - Мюссер Д., Дердж Ж., Сейни А. - C++ и STL. Справочное руководство. 2-е издание - 2010.
Boost - http://www.boost.org/
Qt - Жасмин Бланшет,Марк Саммерфилд - Qt 4. Программирование GUI на С++

Добавлено через 42 секунды
Цитата Сообщение от Casper-SC Посмотреть сообщение
так как это стандартная библиотека и должна быть знакома всем?
Именно.
DeadRipper
64 / 70 / 3
Регистрация: 25.06.2009
Сообщений: 244
30.05.2011, 18:55     Как продолжить? #47
Можно изучать даже тупо ковыряя исходники, в непонятных местах искать документацию,
я например так изучал, главное настоящее желание и цель, а вообще хорошо бы разобраться со структурой оперативной памяти, ее выделением, и адресацией, с принципе все программирование сводится к заполнению ячеек памяти
условям, и простейшим алгебраическим преобразованиям
Casper-SC
 Аватар для Casper-SC
3464 / 1683 / 173
Регистрация: 27.03.2010
Сообщений: 4,824
Записей в блоге: 1
30.05.2011, 19:29     Как продолжить? #48
Кстати нашёл подсветку синтаксиса для C++. Там на странице показано на 2-ух скриншотах отличия. На 2010 студию подсветка встала без проблем. И в С++ тоже теперь можно сворачивать участки кода. Гуд!
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
30.05.2011, 19:33     Как продолжить? #49
Цитата Сообщение от Casper-SC Посмотреть сообщение
Многие вещи я знаю из C#, то есть мне не надо объяснять, что такое класс, методы и что не нужно открывать доступ к полям класса напрямую, что это нужно делать через методы или как в C# свойства. Просто вот хочу именно сам синтаксис быстро выучить. А потом уже зная его буду читать что-то более углублённое.
Если достаточно неплохо знаешь C#, то можешь сразу браться за "Язык программирования C++(специальное издание)" Страуструпа.
ELDQS
 Аватар для ELDQS
10 / 10 / 1
Регистрация: 07.04.2011
Сообщений: 558
Записей в блоге: 1
30.05.2011, 19:58     Как продолжить? #50
поначалу я читал за компьютером книгу по с++, потом решил распечатать книгу брошюрой каждую главу отдельно и читать, так удобно, лег и читаеш, чем на компе, для новичков наверно лучше так.
oIITiMicT
 Аватар для oIITiMicT
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 17
05.06.2011, 15:27  [ТС]     Как продолжить? #51
Укажите пожалуйста на ошибку
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//rus 3.5
//blablabla
//blablabla
//protestit
#include<iostream>
using std::cout;
using std::endl;
using std::cin;
 
#include<string>
using std::string;
using std::getline;
 
//opredelenie klassa GradeBook
class GradeBook
{
public:
    //fynkciya ystanavlivaeeweea nazvanie kyrsa
    void setCourseName(string name)
    {
        courseName=name;//save nazvanie kyrsa v obiekte
    }
 
    //fynkciya poly4awaya nazvanie kyrsa
    string getCourseName()
    {
        return courseName;
    }
 
    //soobwenie privetstvi9
    void displayMessage()
    {
        //etot operator vizivaet getCourse...wob poly4iti
        //nazvy kyrsy, predstavleny kyrsom GradeBook
        cout<<"Welcome to the GradeBook\n"<<getCourseName()
            <<"!"<<endl;
    }
private:
    string CourseName;
};
 
//main po4inae vikonann9 programmi
int main()
{
    string NameOfCourse;//stroka dl9 zberigann9 nazvi kyrsa
    GradeBook myGradeBook;//sozdati gradebook z imenem mygradebook
 
    //vivesti isxodne zna4enn9 courseName
    cout<<"Perwe nazvanie kyrsa e:"<<myGradeBook.getCourseName()
        <<endl;
 
    //zapros vvesti i vivesti nazvy kyrsa
    cout<<"\nPlease,vvedit' im9 kyrsa:"<<endl;
    getline( cin, nameOfCourse);
    myGradeBook.setCourseName(nameOfCourse);
 
    cout<<endl;
    myGradeBook.displayMessage();
    return 0;
}
grizlik78
Эксперт C++
 Аватар для grizlik78
1882 / 1414 / 101
Регистрация: 29.05.2011
Сообщений: 2,958
05.06.2011, 15:38     Как продолжить? #52
В строках 39 и 45 переменные названы с заглавной буквы, а при использовании эти переменные начинаются со строчной буквы. Регистр имеет значение.
oIITiMicT
 Аватар для oIITiMicT
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 17
07.06.2011, 16:35  [ТС]     Как продолжить? #53
Еще несколько вопросов накипело..
1.Можете плз обьяснить что такое класс и обьект класса, ато в книге бредово написано?
2.В книге был пример кода, создается класс, в нем вводить нужно имя файла.. Так почему лучше этот код реализовывать в классах, а не в функциях?
3. Может ли Microsoft Visual Studio 2010 влиять на skype и IE? Ато у меня что-то обе программы не грузятся, и при запуске скайпа какое-то окно студии открывалось..
З.Ы: знаю что вопросы глупые, но все были новичками...
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
07.06.2011, 16:51     Как продолжить? #54
Цитата Сообщение от oIITiMicT Посмотреть сообщение
1.Можете плз обьяснить что такое класс и обьект класса, ато в книге бредово написано?
Меняй книжку и читай одно и тоже пока не дойдет, а если все-таки не дойдет, мб просто не твое ?
Цитата Сообщение от oIITiMicT Посмотреть сообщение
2.В книге был пример кода, создается класс, в нем вводить нужно имя файла.. Так почему лучше этот код реализовывать в классах, а не в функциях?
Может потому что глава была про классы ?
oIITiMicT
 Аватар для oIITiMicT
0 / 0 / 0
Регистрация: 22.05.2011
Сообщений: 17
07.06.2011, 17:00  [ТС]     Как продолжить? #55
Цитата Сообщение от asics Посмотреть сообщение
Меняй книжку и читай одно и тоже пока не дойдет, а если все-таки не дойдет, мб просто не твое ?
Книга интересная, но в разделе про классы недоработали..Я все понял о чем книга толкует, но там просто пример, а что такое класс нету...Гений - это 1% таланта и 99% труда. Может у меня и нету этого 1%, но я пытаюсь достать 99 оставшихся..
Цитата Сообщение от asics Посмотреть сообщение
Может потому что глава была про классы ?
Мейби
А как насчет 3 пункта?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2011, 18:10     Как продолжить?
Еще ссылки по теме:

C++ Как зафиксировать позицию в файле, а потом продолжить с неё считывание
Программа закрывается после решения первого уравнения. Как продолжить ее выполнение? C++
Продолжить последовательность чисел C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
stdcout
53 / 53 / 2
Регистрация: 06.04.2011
Сообщений: 210
07.06.2011, 18:10     Как продолжить? #56
Прошу прощения за то, что лезу с советом.
ИМХО, всё-таки лучше будет подучить язык Си, к тому же его можно рассматривать как подмножество Си++ и знать этот язык хорошо было бы полезно. Да и новичку толку от изучения Си++ будет немного. И ещё, прежде чем изучать ООП и уметь использовать его средства, нужно, наверное, разобраться с алгоритмами, иметь какой-то опыт в разработке программ. Тем более полезно было бы всё это изучить, так как по темам, таким как "алгоритмы", есть очень увлекательные книги - то есть изучать будет не сложно. А знать, что такое "класс", не умея составлять хорошие оптимально работающие функции, толку, наверное, не много. Скорее всего ты и сам придёшь вскоре к этому выводу.
Если нужны хорошие книги по Си, то бесспорно - книга Кернигана и Ритчи.
Yandex
Объявления
07.06.2011, 18:10     Как продолжить?
Ответ Создать тему
Опции темы

Текущее время: 11:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru