OOP w c++

Luźne dyskusje "bardzo sztywnych webmasterów", prowadzone na rózne tematy, mogą być dalece odbiegłe od webmasterstwa. Możemy w końcu udowodnić, że webmaster to także zwykły człowiek i pogadać też potrafi :)
Seba17
Nowy
Nowy
Posty: 70
Rejestracja: śr maja 09, 2007 6:49 pm
Kontakt:

OOP w c++

Post autor: Seba17 »

Witam wszytskich cześc z was powinna mi pomóc. Moja sprawa polega na tym ze na lekcjach programowania bierzemy teraz programowanie obiekotwe w c++ (wczesniej nawet nie bralismy strukturalnego, ale ja cos umie bo sie sam douczałem). I nasz inteligenty nauczyciel wymyślił sobie ze piszemy aplikacje systemu windows wiec moja prośba czy moglibyscie wrzucic tutaj linki do jakis kursów itp czego co szybko pomoze mi to opanować chodzi mi głownie z nastawieniem pod Windows aplication moga być rownież banalne programiki typu formularz z dodawaniem etc zawsze wtedy z kodu sie czegos naucze . Z góry dzieki za wszytkie info.
123456
Zaczyna działać
Zaczyna działać
Posty: 514
Rejestracja: sob paź 28, 2006 1:19 pm

Re: OOP w c++

Post autor: 123456 »

piszemy aplikacje systemu windows
Pod Windows czy konsole dosa?

W jakim środowisku będziecie pisać?
Seba17
Nowy
Nowy
Posty: 70
Rejestracja: śr maja 09, 2007 6:49 pm
Kontakt:

Re: OOP w c++

Post autor: Seba17 »

Własnie chodzi o aplikacje windy a nie dosowskie a w środowisku hmm.. w c++ mówie z tej tematyki jeste troszke szary znam podstawy strukturalne c++. coż wiem ze dziwnie to brzmi ale taki nauczyciel a ze mnie nic nie nauczyc to tez wiem.
123456
Zaczyna działać
Zaczyna działać
Posty: 514
Rejestracja: sob paź 28, 2006 1:19 pm

Re: OOP w c++

Post autor: 123456 »

Jeśli faktycznie będziecie składać proste aplikacje pod winde, to zakładam, że będzie to w środowisku Borlanda, wersja Personal, którego szkoła może mieć za darmo.
Borland to środowisko RAD'owskie więc pare lekcji na zapoznanie sie z podstawowymi komponentami i mozna już złożyć jakże zaawansowaną aplikację na poziomie Notatnika. Szczerze mówiąc to w takim wypadku znajomość OOP kończy się na tym, że będzie się wybierać z listy metody i właściwości jakie udostępnia dany komponent, bo wątpię czy bedziecie pisac swoje klasy skoro nawet -jak napisales - nie mieliscie strukturalnego =/.
Dwa linki do kilku prostych tematów jak wykorzystać różne komponenty:
http://www-users.mat.uni.torun.pl/~orzech/faq/faq.php
http://thunder.prohosting.com/~cbdn/html.htm
Jeśli jednak okaże się, że będziecie się uczyć podstaw OOP, a co za tym idzie na pewno programiki pod konsole dosa, to poczytaj ebook'a http://www.edm2.com/0507/introcpp1.html. Tempo nauki mają tam dość duże jak na wprowadzenie ale w razie czego pytaj. I jeszcze ten faq http://www.parashift.com/c++-faq-lite/ może sie przydac.

BTW. Jak juz bedziesz mial jakies lekcje to napisz co w ogole robicie i w czym.
Seba17
Nowy
Nowy
Posty: 70
Rejestracja: śr maja 09, 2007 6:49 pm
Kontakt:

Re: OOP w c++

Post autor: Seba17 »

Wiem że zbyt dobrze nie tłumacze a teraz na lekcjach robimy formularze w VBN.

A mi chodzi o programowanie gdzie poczatkowy kod programu to:

Kod: Zaznacz cały

#include <windows.h>

/*  Declare Windows procedure  */
LRESULT CALLBACK WindowProcedure (HWND, UINT, WPARAM, LPARAM);

/*  Make the class name into a global variable  */
char szClassName[ ] = "WindowsApp";

int WINAPI WinMain (HINSTANCE hThisInstance,
                    HINSTANCE hPrevInstance,
                    LPSTR lpszArgument,
                    int nFunsterStil)

{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */

    /* The Window structure */
    wincl.hInstance = hThisInstance;
    wincl.lpszClassName = szClassName;
    wincl.lpfnWndProc = WindowProcedure;      /* This function is called by windows */
    wincl.style = CS_DBLCLKS;                 /* Catch double-clicks */
    wincl.cbSize = sizeof (WNDCLASSEX);

    /* Use default icon and mouse-pointer */
    wincl.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wincl.hCursor = LoadCursor (NULL, IDC_ARROW);
    wincl.lpszMenuName = NULL;                 /* No menu */
    wincl.cbClsExtra = 0;                      /* No extra bytes after the window class */
    wincl.cbWndExtra = 0;                      /* structure or the window instance */
    /* Use Windows's default color as the background of the window */
    wincl.hbrBackground = (HBRUSH) COLOR_BACKGROUND;

    /* Register the window class, and if it fails quit the program */
    if (!RegisterClassEx (&wincl))
        return 0;

    /* The class is registered, let's create the program*/
    hwnd = CreateWindowEx (
           0,                   /* Extended possibilites for variation */
           szClassName,         /* Classname */
           "Windows App",       /* Title Text */
           WS_OVERLAPPEDWINDOW, /* default window */
           CW_USEDEFAULT,       /* Windows decides the position */
           CW_USEDEFAULT,       /* where the window ends up on the screen */
           544,                 /* The programs width */
           375,                 /* and height in pixels */
           HWND_DESKTOP,        /* The window is a child-window to desktop */
           NULL,                /* No menu */
           hThisInstance,       /* Program Instance handler */
           NULL                 /* No Window Creation data */
           );

    /* Make the window visible on the screen */
    ShowWindow (hwnd, nFunsterStil);

    /* Run the message loop. It will run until GetMessage() returns 0 */
    while (GetMessage (&messages, NULL, 0, 0))
    {
        /* Translate virtual-key messages into character messages */
        TranslateMessage(&messages);
        /* Send message to WindowProcedure */
        DispatchMessage(&messages);
    }

    /* The program return-value is 0 - The value that PostQuitMessage() gave */
    return messages.wParam;
}


/*  This function is called by the Windows function DispatchMessage()  */

LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch (message)                  /* handle the messages */
    {
        case WM_DESTROY:
            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
            break;
        default:                      /* for messages that we don't deal with */
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

    return 0;
}

Wiem że nie tłumacze dokładnie o co mi chodzi ale coż taka jest nasz system szkolnictwa ze żaden dobry nauczyciel nie chce iść pracować i uczyc w szkole programowania a przydało by sie tego nauczyć. Sorka za problem i wielkie dzięki za wszelką pomoc.


Teraz na lekcji troche zobaczyłem kodu co robimy i jest on taki

Kod: Zaznacz cały

#pragma once


namespace Projekt1
{
	using namespace System;
	using namespace System::ComponentModel;
	using namespace System::Collections;
	using namespace System::Windows::Forms;
	using namespace System::Data;
	using namespace System::Drawing;

	/// <summary> 
	/// Summary for Form1
	///
	/// WARNING: If you change the name of this class, you will need to change the 
	///          'Resource File Name' property for the managed resource compiler tool 
	///          associated with all .resx files this class depends on.  Otherwise,
	///          the designers will not be able to interact properly with localized
	///          resources associated with this form.
	/// </summary>
	public __gc class Form1 : public System::Windows::Forms::Form
	{	
	public:
		Form1(void)
		{
			InitializeComponent();
		}
  
	protected:
		void Dispose(Boolean disposing)
		{
			if (disposing && components)
			{
				components->Dispose();
			}
			__super::Dispose(disposing);
		}
	private: System::Windows::Forms::Button *  button1;
	private: System::Windows::Forms::Button *  dwa;
	private: System::Windows::Forms::Button *  trzy;

	private:
		/// <summary>
		/// Required designer variable.
		/// </summary>
		System::ComponentModel::Container * components;

		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		void InitializeComponent(void)
		{
			this->button1 = new System::Windows::Forms::Button();
			this->dwa = new System::Windows::Forms::Button();
			this->trzy = new System:Windows::Forms::Button();
			this->SuspendLayout();
			// 
			// button1
			// 
			this->button1->Location = System::Drawing::Point(8, 224);
			this->button1->Name = S"button1";
			this->button1->Size = System::Drawing::Size(32, 32);
			this->button1->TabIndex = 0;
			this->button1->Text = S"button1";
			// 
			// dwa
			// 
			this->dwa->Location = System::Drawing::Point(8, 176);
			this->dwa->Name = S"dwa";
			this->dwa->Size = System::Drawing::Size(32, 32);
			this->dwa->TabIndex = 1;
			this->dwa->Text = S"2";
			// 
			// trzy
			// 
			this->trzy->Loctation = System::Drawing::Point(8, 140);
			this->trzy->Name = S"trzy";
			this->trzy->Size = System::Drawing::Size(32, 32);
			this->trzy->TabIndex = 1;
			this->trzy->Text = S"3";
			// 
			// Form1
			// 
			this->AutoScaleBaseSize = System::Drawing::Size(5, 13);
			this->ClientSize = System::Drawing::Size(292, 266);
			this->Controls->Add(this->trzy);
			this->Controls->Add(this->dwa);
			this->Controls->Add(this->button1);
			this->Name = S"Form1";
			this->Text = S"Form1";
			this->ResumeLayout(false);

		}	
	};
}

///// Akurat ten kod ma mały bład ale mniej wiecej tak to wyglada
Może ten kod wam podpowie w czym piszemy.

I takie pytanie bardziej dla wyjasnienia. Czy programista jak robim przypuscmyw tym co podałem kalkulator to przyciski rysuje za pomocą kretora czy sam wszystko wpisuje w kodzie
123456
Zaczyna działać
Zaczyna działać
Posty: 514
Rejestracja: sob paź 28, 2006 1:19 pm

Re: OOP w c++

Post autor: 123456 »

Hmm... faktycznie pod win. Szczerze mówiąc nie rozumiem dlaczego nauczyciel zaczyna od tego. Wszyscy rozumieją co piszą czy tylko przepisują z kartki?
Seba17
Nowy
Nowy
Posty: 70
Rejestracja: śr maja 09, 2007 6:49 pm
Kontakt:

Re: OOP w c++

Post autor: Seba17 »

Sprawa wyglada tak ze on zna podstawy VBN i wiesz proboje cos uczyc a ja powiedziałem ze on i tak mnie nic nie nauczy to jak mam sie juz mam sie uczyc aplikacji pod winde to chociaz naucze sie w C++ i dlatego potrzebuje te kursy manuale cokolwiek . Szczerze mówia to ten pierwszy kod był z programu DEV-cpp
a drugi z Visual Baisca tam jest cała platforma z której mozna wybrac Visual C++ Aplication From Windosw cos takiego.

A szczerze czego nas tak uczy bo sam tego nie umi. A wiesz za 1200 zł brutto poszedłk bys do szkoły pracować. To sie nie dziw ze nie chca uczyc.
123456
Zaczyna działać
Zaczyna działać
Posty: 514
Rejestracja: sob paź 28, 2006 1:19 pm

Re: OOP w c++

Post autor: 123456 »

to jak mam sie juz mam sie uczyc aplikacji pod winde to chociaz naucze sie w C++ i dlatego potrzebuje te kursy manuale cokolwiek
Bedzie Ci potrzebna książka aby najpierw nauczyc sie solidnych podstaw cpp. Jak bedziesz znal juz dosc dobrze sam jezyk zaczynasz z poznawaniem winapi i programowaniem pod niego. Przy pisaniu po win kursy beda przydatne, np. win32 theForger's Win32

Pozniej bedziesz musial szukac konkretnych informacji o danym problemie.

opis jezyka
ksiazka do nauki jezyka - Thinking In C++ - Vol 2 - Bruce Eckel
Seba17
Nowy
Nowy
Posty: 70
Rejestracja: śr maja 09, 2007 6:49 pm
Kontakt:

Re: OOP w c++

Post autor: Seba17 »

Nic dzieki wielkie za wszelka pomoc. Coż przyznam sie że programowanie nie jest moja mocna strona i wolałbym sie czegos innego uczyc ale jakos trzeba sobie poradzic zeby chcociaż podstawy podłapać.
ODPOWIEDZ