Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Часть 2. Я начинающий, подскажите как...(Все вопросы начинающих!!!)

51K
05 июля 2009 года
Олориин
1 / / 05.07.2009
День добрый вопрос такой: в ListBox создал 3 столбца
ListBox1->Columns=3;
каким образом записать строку в второй и третий столбцы?

1636 ответов / показаны 1521 - 1559

Страницы:
277
03 декабря 2011 года
arrjj
1.7K / / 26.01.2011
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;

class Cat
{
public:
Cat(){X= new int;}//А не int *X=new int; , т.к. тогда создаёшь внутреннюю переменную X , а член класса X остаётся не инициализированным.
~Cat(){delete X;}
int GetX(){return *X;}//Значение X
int GetXAddr(){return (int)X;}//Значение указателя
void SetX(int x)
{
*X=x;
}
private:
int *X;
};
int _tmain(int argc, _TCHAR* argv[])
{
Cat *Polly= new Cat;
Polly->SetX(6);
cout<<Polly->GetX()<<" "<<Polly->GetXAddr()<<endl;
system("pause");

return 0;
}
14K
03 декабря 2011 года
artem_kvadro
63 / / 30.07.2007
Описал DataTemplate:
Код:
<Window.Resources>
        <DataTemplate x:Key="myDataTemplate">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition />
                    <ColumnDefinition />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>

                <Button Click="button1_Click" Content="Button" Grid.Column="1" Name="button1" />
                <TextBox Text="{Binding Path=str}" Name="textBox1" />
                <Rectangle Fill="{Binding Path=brush}" Grid.Column="2" />
            </Grid>
        </DataTemplate>
    </Window.Resources>
   
   
    <Grid>
        <ListBox Name="MyListBox"
                ItemTemplate="{StaticResource myDataTemplate}"/>
    </Grid>


В коде добавляю элементы в список, нормально отображаются. Но не могу разобраться: как идентифицировать элемент (в событии button1_Click), в котором была нажата кнопка? То есть нужно получить либо номер строки в ListBox'е, либо сам элемент.
14K
03 декабря 2011 года
artem_kvadro
63 / / 30.07.2007
Ну вроде нашел решение:

 
Код:
private void button1_Click(object sender, RoutedEventArgs e)
{
    Button btn = sender as Button;
    ContentPresenter cp = btn.TemplatedParent as ContentPresenter;
    MyItem item = cp.Content; //это и есть элемент в списке
}

Насчет ContentPresenter нашел в статье.
70K
04 декабря 2011 года
Настен
37 / / 13.10.2011
Добрый день!
Я написала код программы наследования:
Код:
# include <iostream>
using namespace std;
class Base
{
protected:
    char * name;
    char * surname;
    int age;
public:
Base()
{
    surname=new char [20];
    name=new char [20];
    age=0;
}
~Base()
{
    delete name;
    delete surname;
}

void Print()
{
    cout<<name<<" "<<surname<<"\n возвраст:"<<age<<endl;
}
void Input()
{
    cout<<"введите фамилию, имя"<<endl;
    cin>>surname>>name;
    cout<<"введите возраст"<<endl;
    cin>>age;
}
};
class Student:public Base
{
private:
    int coorse,group;
    int rate;
public:
    Student()
    {
        coorse=0;
        group=0;
        rate=0;
    }

~Student()
{
    delete name;
    delete surname;
}
void Print()
{
    cout<<name<<","<<surname<<","<<age<<","<<coorse<<","<<group<<","<<rate<<endl;
}
void Input()
{
    cout<<"Введите имя студента "<<endl;
    cin>>name;
    cout<<"Введите фамилию студента "<<endl;
    cin>>surname;
    cout<<"Введите возраст студента "<<endl;
    cin>>age;
    cout<<"Введите курс студента"<<endl;
    cin>>coorse;
    cout<<"Введите группу студента"<<endl;
    cin>>group;
    cout<<"Введите рейтинг студента"<<endl;
    cin>>rate;
}
};
class Teacher:protected Base
{
    char*post;
    float salary;
public:
Teacher()
{
    post=new char [20];
    salary=0;
}
~Teacher()
{
    delete name;
    delete surname;
    delete post;
}
void Print()
{
    cout<<name<<","<<surname<<","<<age<<","<<post<<","<<salary<<endl;
}
void Input()
{
    cout<<"Введите имя преподавателя "<<endl;
    cin>>name;
    cout<<"Введите фамилию преподавателя "<<endl;
    cin>>surname;
    cout<<"Введите возраст преподавателя "<<endl;
    cin>>age;
    cout<<"Введите должность преподавателя "<<endl;
    cin>>post;
    cout<<"Введите зарплату преподавателя"<<endl;
    cin>>salary;
}
};
class Head:private Base
{
    char*chair;
public:
Head()
{
    chair = new char [20];
}
~Head()
{
    delete name;
    delete surname;
    delete chair;
}
void Print()
{
    cout<<name<<","<<surname<<","<<chair<<endl;
    cout<<"возраст"<<age<<endl;
}
void Input()
{
    cout<<"Введите имя заведующего кафедрой "<<endl;
    cin>>name;
    cout<<"Введите фамилию заведующего кафедрой "<<endl;
    cin>>surname;
    cout<<"Введите кафедру заведующего "<<endl;
    cin>>chair;
    cout<<"Введите возраст заведующего кафедрой "<<endl;
    cin>>age;
}
};
void main()
{
    setlocale(LC_ALL, "Russian");
    Base *a=new Base();
    a->Input();
    a->Print();
    Student *b= new Student();
    b->Input();
    b->Print();
    Teacher *c= new Teacher();
    c->Input();
    c->Print();
    Head *d= new Head ();
    d->Input();
    d->Print();
    system("pause");
}

Мне помогли с выделением памяти,только я не понимаю зачем,не могли б вы объяснить!
72K
04 декабря 2011 года
Dethrone
10 / / 22.10.2011
всем привет.
прошу мне помочь еще раз, так как реально не кому обратиться.
буду очень благодарен за ответ.

#include "stdafx.h"
#include <iostream>
using namespace std;
class Cat
{
public:
Cat();
~Cat();
int GetX()const {return X;}
void SetX(int x){ X = x;}
int GetY()const{return Y;}
void SetY(int y){Y = y;}
private:
int X, Y;
};
Cat::Cat()
{
X=4;
Y=2;
}
Cat::~Cat(){cout<<"uu";}

int _tmain(int argc, _TCHAR* argv[])
{

Cat Gor;
cout<<Gor.GetX();
const Cat *Hot=new Cat;
cout<<Hot->GetX();
delete Hot;// udalil zna4enie ukazatel9, i sootvetstvenno osvobodil pam9t6 vudel9uweesu na nego
Cat *Hot=new Cat;// i ho4u sozdat etot obekt po novomy adresy, i proverit ne 9vl9ets9 li zna4enie pam9ti constantoy
Hot->SetX(8);// no ono poxodu uje ispol6zuet tot je obekt 4to 9 uje ob9vl9l, i ispolzuet ego kak constantnuy,
cout<<Hot->GetX();// po4emu nelz9 udal9t ili men9t ukazateli ukazuuwie na adresa gde
// hran9ts9 constantu.

system("pause");
return 0;
}

pohoje no uje s peremennoy, pochemu nelz9 men9t adres cotoruy hraniol ucazatel, esli on hranil adres konstantu, hot9
sam kak int * const pt ne bil ukazan


#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
const int t=4;
int y=6;
int *pt=0;
pt=&t;
cout<<*pt<<"\n";


pt=&y;
cout<<*pt;

system("pause");
return 0;
}
9.7K
06 декабря 2011 года
Vitamant
228 / / 07.02.2011
Настен
Я правильно понял вопрос: "зачем тебе помогли?". Не знаю... наверное, сжалились...:rolleyes:

Dethrone
1) Используй тег CODE
2) Задай вопрос для начала, а то не ясно - в чем тебе нужна помощь
3) Не используй транслит
277
06 декабря 2011 года
arrjj
1.7K / / 26.01.2011
Цитата: Dethrone

pohoje no uje s peremennoy, pochemu nelz9 men9t adres cotoruy hraniol ucazatel, esli on hranil adres konstantu, hot9
sam kak int * const pt ne bil ukazan

Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{  
    const int t=4;
    int y=6;
    int *pt=0;
    pt=&t;
    cout<<*pt<<"\n";


    pt=&y;
    cout<<*pt;

    system("pause");
    return 0;
}


На такой вариант g++ ругается мол немогу преобразовать const int* в int*

Код:
//#include "stdafx.h"
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
const int t=4;
int y=6;
int *pt=0;
pt=(int*)&t;
cout<<*pt<<endl;


pt=&y;
cout<<*pt<<endl;

//system("pause");
return 0;

Так хавает и нормально изменяет значение указателя.

Ну а по сабжу лучше про cast'ы почитай.
18K
06 декабря 2011 года
imAlex
179 / / 29.07.2010
Добрый день.
Подскажите как правильно передавать данные через сокет?
У меня есть структура сервер-клиент. Необходимо передать ванные (например с сервера клиенту). Данные передаются пакетами по 1024 байта. Сейчас мне приходится делить исходные данные на пакеты и в последний пакет включать некий условный символ конца передачи, а клиент каждый пакет проверять на наличие этого конца. К этой структуре я пришел так-как принимающий массив байт должен быть определен до его использования. Я прочитал на msdn-е, что есть флаг сокета, говорящий о том, что сообщение передано не целиком (Partial). Как мне в клиенте проверять этот флаг?
277
06 декабря 2011 года
arrjj
1.7K / / 26.01.2011
А ты сначала отправляй размер пакета (int, 4 байта), а потом сам пакет
В клиенте принимай размер, создавай массив и в него считывай весь пакет.
70K
06 декабря 2011 года
Настен
37 / / 13.10.2011
Добрый день!!!
Вот код программы на наследование,необходимо сделать еще стек...
Код:
# include <iostream>
using namespace std;
class Base
{
protected:
    char * name;
    char * surname;
    int age;
public:
Base()
{
    surname=new char [20];
    name=new char [20];
    age=0;
}

~Base()
{
    delete name;
    delete surname;
}

void Print()
{
    cout<<name<<" "<<surname<<"\n возвраст:"<<age<<endl;
}
void Input()
{
    cout<<"введите фамилию, имя"<<endl;
    cin>>surname>>name;
    cout<<"введите возраст"<<endl;
    cin>>age;
}
};
class Student:public Base
{
private:
    int coorse,group;
    int rate;
public:
    Student()
    {
        coorse=0;
        group=0;
        rate=0;
    }

~Student()
{
    delete name;
    delete surname;
}
void Print()
{
    cout<<name<<","<<surname<<","<<age<<","<<coorse<<","<<group<<","<<rate<<endl;
}
void Input()
{
    cout<<"Введите имя студента "<<endl;
    cin>>name;
    cout<<"Введите фамилию студента "<<endl;
    cin>>surname;
    cout<<"Введите возраст студента "<<endl;
    cin>>age;
    cout<<"Введите курс студента"<<endl;
    cin>>coorse;
    cout<<"Введите группу студента"<<endl;
    cin>>group;
    cout<<"Введите рейтинг студента"<<endl;
    cin>>rate;
}
};
class Teacher:protected Base
{
    char*post;
    float salary;
public:
Teacher()
{
    post=new char [20];
    salary=0;
}
~Teacher()
{
    delete name;
    delete surname;
    delete post;
}
void Print()
{
    cout<<name<<","<<surname<<","<<age<<","<<post<<","<<salary<<endl;
}
void Input()
{
    cout<<"Введите имя преподавателя: "<<endl;
    cin>>name;
    cout<<"Введите фамилию преподавателя: "<<endl;
    cin>>surname;
    cout<<"Введите возраст преподавателя: "<<endl;
    cin>>age;
    cout<<"Введите должность преподавателя: "<<endl;
    cin>>post;
    cout<<"Введите зарплату преподавателя:"<<endl;
    cin>>salary;
}
};
class Head:private Base
{
    char*chair;
public:
Head()
{
    chair = new char [20];
}
~Head()
{
    delete name;
    delete surname;
    delete chair;
}
void Print()
{
    cout<<name<<","<<surname<<","<<chair<<endl;
    cout<<"возраст"<<age<<endl;
}
void Input()
{
    cout<<"Введите имя заведующего кафедрой "<<endl;
    cin>>name;
    cout<<"Введите фамилию заведующего кафедрой "<<endl;
    cin>>surname;
    cout<<"Введите кафедру заведующего "<<endl;
    cin>>chair;
    cout<<"Введите возраст заведующего кафедрой "<<endl;
    cin>>age;
}
};
void main()
{
    setlocale(LC_ALL, "Russian");
    Base *a=new Base();
    a->Input();
    a->Print();
    Student *b= new Student();
    b->Input();
    b->Print();
    Teacher *c= new Teacher();
    c->Input();
    c->Print();
    Head *d= new Head ();
    d->Input();
    d->Print();
    system("pause");
}
18K
06 декабря 2011 года
imAlex
179 / / 29.07.2010
Цитата: arrjj
А ты сначала отправляй размер пакета (int, 4 байта), а потом сам пакет
В клиенте принимай размер, создавай массив и в него считывай весь пакет.


Спасибо за ответ.
И тогда передавать данные одним пакетом (речь идет примерно о 5-20КБ)? В стиле пусть TCP сам разбивает на нужные ему сегменты?
И стоит ли такую схему применять для передачи данных размером в 2-3Мб?

277
06 декабря 2011 года
arrjj
1.7K / / 26.01.2011
Цитата: imAlex
Спасибо за ответ.
И тогда передавать данные одним пакетом (речь идет примерно о 5-20КБ)? В стиле пусть TCP сам разбивает на нужные ему сегменты?


Нуда, люди ж старались протокол разрабатывали, специально чтоб прогеры не заморачивались в этом плане :)

Цитата: imAlex

И стоит ли такую схему применять для передачи данных размером в 2-3Мб?



2-3 Мб - немного. 2-3Гб тогда б стоило наверно на части пакет разделять.

18K
07 декабря 2011 года
imAlex
179 / / 29.07.2010
Цитата: arrjj
Нуда, люди ж старались протокол разрабатывали, специально чтоб прогеры не заморачивались в этом плане :)


Спасибо. :D

70K
09 декабря 2011 года
Настен
37 / / 13.10.2011
Привет всем!!!
Я начала писать код программы наследование,создавать стек из элементов базового класса,только не уверена что правильно начала..
Код:
using namespace std;
class Base
{
protected:
    char * name;
    char * surname;
    int age;
public:
Base()
{
    s
}
virtual void Print(){urname=new char [20];
    name=new char [20];
    age=0;};
virtual void Input()=0;
virtual ~Base(){}
};
class Student:public Base
{
private:
    int coorse,group;
    int rate;
public:
    Student()
    {
        coorse=0;
        group=0;
        rate=0;
    }

~Student()
{
    delete name;
    delete surname;
}
void Print()
{
    cout<<name<<","<<surname<<","<<age<<","<<coorse<<","<<group<<","<<rate<<endl;
}
void Input()
{
    cout<<"Введите имя студента "<<endl;
    cin>>name;
    cout<<"Введите фамилию студента "<<endl;
    cin>>surname;
    cout<<"Введите возраст студента "<<endl;
    cin>>age;
    cout<<"Введите курс студента"<<endl;
    cin>>coorse;
    cout<<"Введите группу студента"<<endl;
    cin>>group;
    cout<<"Введите рейтинг студента"<<endl;
    cin>>rate;
}
};
class Teacher:protected Base
{
    char*post;
    float salary;
public:
Teacher()
{
    post=new char [20];
    salary=0;
}
~Teacher()
{
    delete name;
    delete surname;
    delete post;
}
void Print()
{
    cout<<name<<","<<surname<<","<<age<<","<<post<<","<<salary<<endl;
}
void Input()
{
    cout<<"Введите имя преподавателя: "<<endl;
    cin>>name;
    cout<<"Введите фамилию преподавателя: "<<endl;
    cin>>surname;
    cout<<"Введите возраст преподавателя: "<<endl;
    cin>>age;
    cout<<"Введите должность преподавателя: "<<endl;
    cin>>post;
    cout<<"Введите зарплату преподавателя:"<<endl;
    cin>>salary;
}
};
class Head:private Base
{
    char*chair;
public:
Head()
{
    chair = new char [20];
}
~Head()
{
    delete name;
    delete surname;
    delete chair;
}
void Print()
{
    cout<<name<<","<<surname<<","<<chair<<endl;
    cout<<"возраст"<<age<<endl;
}
void Input()
{
    cout<<"Введите имя заведующего кафедрой "<<endl;
    cin>>name;
    cout<<"Введите фамилию заведующего кафедрой "<<endl;
    cin>>surname;
    cout<<"Введите кафедру заведующего "<<endl;
    cin>>chair;
    cout<<"Введите возраст заведующего кафедрой "<<endl;
    cin>>age;
}
};
class List
{
    Base* head;
public:
    List()
    {
        head=NULL;
    }
    void Push(Base*b);
    int Pop();
       

void main()
{
    setlocale(LC_ALL, "Russian");
    List l;
    /*Base *a=new Base();
    a->Input();
    a->Print();
    Student *b= new Student();
    b->Input();
    b->Print();
    Teacher *c= new Teacher();
    c->Input();
    c->Print();
    Head *d= new Head ();
    d->Input();
    d->Print();
    system("pause");*/
}
14
09 декабря 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: Настен
Я начала писать код программы наследование,создавать стек из элементов базового класса,только не уверена что правильно начала..


А обязательно char* ? Не легче ли std::string?

70K
10 декабря 2011 года
Настен
37 / / 13.10.2011
Да вроде как легче мне с char...Я только не знаю как стек создать и описать дальше главную функцию,не могли б вы мне помочь!
70K
10 декабря 2011 года
Настен
37 / / 13.10.2011
я создала класс стек,а что дальше описывать в функциях я не знаю как..
 
Код:
class Stack
{
    Base*head;
public:
    Stack()
    {
        head=NULL;
    }
 
 void Push(Base*val)
76K
10 декабря 2011 года
kmaks
10 / / 10.12.2011
Привет всем. Только-только, первые шаги начинаю делать. Раньше на PHP кодил, еще раньше на VB пытался, но еще возраст небольшой был, так что забросил в скором времени. Что в C++ считается быдлокодом?

Код:
#1 Быдлокод
echo("This is string");
#1 Норм
echo 'This is String';

#2 Быдлокод
$strA = "text"
echo("Var: $strA");
#2 Норм
$strA = 'text'
echo 'Var: '. $strA;

#3 Быдлокод
if(x==0){
   die("Err");
}
3# Норм
if(x == 0)
    die('Error');

#4 Быдлокод, SQL-inj
$myName = $_POST['my_name'];
$getInfo = mysql_query("select * from table_name where name=$myName") or die(mysql_error());
#4 Норм
$myName = $_POST['my_name'];
$getInfo = mysql_query("SELECT* FROM `table_name` WHERE `name` = '".mysql_real_escape_string($myName). "'") or die(mysql_error());

Норм


На PHP все вышеперечисленное допускается синтаксисом, но за такое можно оторвать руки. Есть ли в C/C++ какие-нибудь моменты, схожие с теми, что я привел в пример?
297
11 декабря 2011 года
koodeer
1.2K / / 02.05.2009
Цитата: kmaks
Есть ли в C/C++ какие-нибудь моменты, схожие с теми, что я привел в пример?


Главное: C и C++ - это разные языки!
Быдлокод как раз получается, когда на C++ пишут в стиле C.

70K
11 декабря 2011 года
Настен
37 / / 13.10.2011
Привет всем!!!!Подскажите,как создать стек из элементов базового класса и какие функции нужны.
78K
12 декабря 2011 года
StereoRu
3 / / 12.12.2011
Товарищи, подскажите пожалуйста, есть такая идея в С# написать приложение:

Основной функцией которого явл рисование прямыми линиями скелетных схем(оооочень больших) хранить эти схемы в БД.

Я понимаю что каждая линия состоит из двух точек координаты которых будут храниться в БД.

Вопрос в том как можно сделать оконечные точки каждой прямой и сами прямые кликабельными( чтобы к ним можно было бы тоже привязывать какието объекты, выделять и тд).

Второй вопрос состоит в масштабировании получившейся оооочень большой схемы без ущерба качеству изображения.

Подскажите с помощью чего можно реализовать это все, Graphics вроде не подходит....
Если можно литературу посоветовать или ссылочки.....

Заранее благодарен.
297
13 декабря 2011 года
koodeer
1.2K / / 02.05.2009
StereoRu
Судя по упоминанию Graphics, речь идёт о WindowsForms приложении. Это обязательно? Потому что в wpf сделать описанное поведение, на мой взгляд, намного проще.

Конечно, всё это можно сделать и в WinForms, с помощью Graphics. Но, тогда, клик на линии придётся определять вручную. Между тем, в WPF заботу об этом берёт на себя система.
78K
13 декабря 2011 года
StereoRu
3 / / 12.12.2011
Не могли бы вы посоветовать литературку или ссылочки хорошие и понятные по данной теме. И еще очень важный вопрос о масштабировании. Где его проще организовать? В wpf?
297
13 декабря 2011 года
koodeer
1.2K / / 02.05.2009
StereoRu, если wpf подходит, то вот списочек материалов (для себя собирал). Кстати, уже есть книга Мак-Дональда Wpf в .NET 4.

Основным источником сведений, конечно же, является MSDN. Вот, например, ссылка на знакомство с рисованием простых фигур http://msdn.microsoft.com/ru-ru/library/ms747393.aspx

С масштабированием проблем не будет. WPF как раз и создавался с прицелом на это. Векторная графика, вещественные значения координат и пр.
76K
13 декабря 2011 года
kmaks
10 / / 10.12.2011
Цитата:
Главное: C и C++ - это разные языки!
Быдлокод как раз получается, когда на C++ пишут в стиле C.


Так, допустим, что-то уже есть.

Но вот меня интересуют моменту насчет читабельности кода

Допустим, два варианта объявление прототипа:

 
Код:
void OneFunc(int, int);
void OneFunc(int intA, int intB);


Что по-вашему правильнее?
297
13 декабря 2011 года
koodeer
1.2K / / 02.05.2009
Цитата: kmaks
Но вот меня интересуют моменту насчет читабельности кода

Допустим, два варианта объявление прототипа:

 
Код:
void OneFunc(int, int);
void OneFunc(int intA, int intB);


Что по-вашему правильнее?


Конечно, второй вариант. Именно по причине большей читабельности.

А вообще, оба варианта плохи. OneFunc - о чём говорит это название? что делает эта функция? intA, intB - для чего эти значения? что они означают?
Я понимаю, это всего лишь пример, но лишний раз обращу внимание на необходимость внятного именования.
Например в C#4 стало возможно указывать названия аргументов при вызове методов. Т. е. можно вызов вышеупомянутой функции можно написать так:

 
Код:
OneFunc(intA: 5, intB: 6);
В данном случае это особо не повышает читабельность, но в некоторых случаях, когда аргументов функции много, такая форма записи может стать наглядней. То есть в язык ввели ещё один способ повышения читабельности, потому что это реально востребовано!



Ещё обращу внимание на первое сообщение.
Цитата: kmaks
 
Код:
#4 Норм
$getInfo = mysql_query("SELECT* FROM `table_name` WHERE `name` = '".mysql_real_escape_string($myName). "'") or die(mysql_error());


Я php фактически не знаю, но даже я вижу, за что можно оторвать руки в этом норм коде.
Функции mysql*, насколько мне известно, считаются устаревшими. Взамен следует употреблять mysqli*.
Просто вызвать die - не комильфо. Если произошла ошибка, с ней нужно разбираться, а не вываливать сообщение, и на этом всё.
SQL-запрос "SELECT *" - думаю, любой админ базы данных на это люто осерчает.

Я что хочу этим сказать: то, что кажется нормальным кодом на одном уровне знаний, становится быдлокодом на следующей ступеньке.

72K
13 декабря 2011 года
Dethrone
10 / / 22.10.2011
добрый день, помогите пожалуйста, не работает конструктор, не могу понять почему.



// peregruz.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <iostream>
using namespace std;
class cont
{
cont();
cont(int x){X=new int(x);}
cont(const cont&);
~cont (){delete X; X=0;}
int GetX()const{return *X;}
void SetX(int x){*X=x;}
const cont operator++(int x);
const cont & operator++();
cont & operator =( const cont&);
private:
int *X;
};
cont::cont()
{
X=new int(5);
}
cont::cont(const cont &rhs)
{
X=new int;
*X=rhs.GetX();
}
const cont cont::operator ++(int x)
{
cont C;
C=*this;
++(*X);
return C;
}
const cont & cont::operator ++()
{
++(*X);
return *this;
}
cont & cont::operator =(const cont & rhs)
{
if(this==&rhs)
return *this;
*X=rhs.GetX();
return *this;
}
int _tmain(int argc, _TCHAR* argv[])
{
cont x, y(9);
x++;
++y;
cout<<x.GetX()<<"\n";
cout<<y.GetX()<<"\n";
x=y;
cout<<x.GetX()<<"\n";
cout<<y.GetX()<<"\n";
system("pause");
return 0;
}
9.7K
13 декабря 2011 года
Vitamant
228 / / 07.02.2011
C#4.0
1) Господа, подскажите - в каких случаях нужно освобождать указатели, а в каких нет.
В данный момент интересует дескриптор окна в виде IntPtr, возращенный WinAPI'шной функцией. Логика подсказывает, что это всего лишь номер, и делать с ней ничего не нужно. С другой стороны, кто его знает - как эта цифра ко мне попала. Может, ее добавили в какой-нибудь тайный регистр и будет она жить в нем вечно, пока не умрет процесс. Подскажите. :) Буду благодарен за ссылку на какую-нибудь статью по теме. Также интересуют безопасные указатели и случаи, когда их нужно применять.

2) Существует ли корректный способ парсить числа с плавающей точкопятой? Задача тривиальна - "177.4" и "177,4" должны распарситься, как 177.4 в системе с любой локалью и разделителем. Единственный найденный мною способ - объявить формат, н.п. с точкой, после чего все запятые в строке заменить на точку.
Сразу замечу, что тема была как следует обгуглена и на наших и на забугорных сайтах. Поиск результатов не дал. Но попрошу перед любым ответом на этот вопрос проверить свой способ на работоспособность! InvariantCulture не поможет! Канадская локаль не поможет! Исключение разделителей разрядов не поможет! В результате всех виденных мною способов, парсинг одного из чисел либо выдаст исключение, либо одно станет 177.4, а другое - 1774.

Заранее благодарю за любую помощь!
297
13 декабря 2011 года
koodeer
1.2K / / 02.05.2009
Цитата: Vitamant
2) Существует ли корректный способ парсить числа с плавающей точкопятой?


http://social.msdn.microsoft.com/Forums/ru-RU/programminglanguageru/thread/3d6d2f7b-3a39-4933-8c39-eeb48a9fff63

78K
13 декабря 2011 года
Anton86
1 / / 13.12.2011
Помогите разобраться с преобразованием типов. Есть код

#include <iostream>

using namespace std;

int main()
{
float p0 = 121.1;
float p1 = 121.2;
float p2 = 121.3;
int l0, l1, l2;

l0 = (int)(p0 * 10.0);
l1 = (int)(p1 * 10.0);
l2 = (int)(p2 * 10.0);
cout << l0 << endl << l1 << endl << l2 << endl;
return 0;
}

вывод программы:

1210
1211
1213

Насколько я представляю правила преобразования типов, при проведении промежуточных вычислений, при вычислении l0 - l2, сначала вычисляется значение в скобках типа float, затем результат преобразовывается к int. Объясните в чем дело.
70K
14 декабря 2011 года
Настен
37 / / 13.10.2011
Привет всем!
Из списка из лабораторной №5, выбрать объекты одного из производных типов и добавить их в контейнер vector стандартного класса из STL. Преобразовать контейнер vector в контейнер list или map, указав границы копирования с помощью итераторов. Применить ко второму контейнеру один из стандартных методов сортировки библиотеки STL.
Подскажите,пожалуйста,с чего начать и как,что такое контейнеры и итераторы?
14K
15 декабря 2011 года
artem_kvadro
63 / / 30.07.2007
Цитата: Vitamant
C#4.0
1) Господа, подскажите - в каких случаях нужно освобождать указатели, а в каких нет.
В данный момент интересует дескриптор окна в виде IntPtr, возращенный WinAPI'шной функцией. Логика подсказывает, что это всего лишь номер, и делать с ней ничего не нужно. С другой стороны, кто его знает - как эта цифра ко мне попала. Может, ее добавили в какой-нибудь тайный регистр и будет она жить в нем вечно, пока не умрет процесс. Подскажите. :) Буду благодарен за ссылку на какую-нибудь статью по теме. Также интересуют безопасные указатели и случаи, когда их нужно применять.



Может, я не правильно понял вопрос, но попробую ответить. Если под освобождением указателя ты имеешь ввиду освобождение памяти, выделенной под него, то с дескриптором окна (HWND) делать ничего не нужно, так как это забота WinAPI функций создания (CreateWindow) и уничтожения окна (DestroyWindow).
А самому освобождать память под указателем приходится тогда, когда сам же и выделил память (например, оператором new в C++). Или если это указано в описании какой-то функции, что она выделяет память, возвращает указатель, а клиент должен сам потом эту память освободить. Ну а то, что ты видишь цифру - это содержимое указателя, то есть тот адрес, куда он указывает.

9.7K
15 декабря 2011 года
Vitamant
228 / / 07.02.2011


То есть корректного нет. =\ Предложенный вариант в общем-то понравился. :) Только LINQ там лишние - два прохода делает. А операции парсинга все-таки должны оставаться быстрыми. Спасибо!

artem_kvadro
Хм... вот это "Или если это указано в описании какой-то функции, что она выделяет память, возвращает указатель, а клиент должен сам потом эту память освободить." как раз и смущает... Ладно, благодарю, с окнами хоть все более-менее понятно.

79K
17 декабря 2011 года
елена2512
2 / / 17.12.2011
напишите пожалуйста программу!!!
дана квадратная матрица порядка А
найти сумму элементов по периметру матрицы и под побочной диагональю
77K
18 декабря 2011 года
Feerverk
5 / / 28.11.2011
1)Программа , строит матрицу(столбцы и строчки) из введённых чисел(разрешено вводить числа < 2000) .
///////Размер строчек и столбцов вводится через #define .
2) Программа принимает число от пользователя для постройки маленькой матрицы(меньше,чем первая).
3)На экран выводится маленькая матрица , сумма цифр которой должна быть наибольшей (если этой маленькой матрицей проверять большую) .
На пример :
Большая матрица
234 567 21

367 345 134

12 16 34
Число введённое пользователем : 2

Маленькая матрица должна быть такой :
234 567

367 345

Помогите пожалуйста решить . Мозги закипели уже =) Я понимаю , что нельзя писать , но буду очень благодарен если вы мне сможете чем то помочь .до завтра (до 23,55 нужно сдать) ,

Мои потуги выглядят так (только это не работает + я не знаю КАК СОЗДАТЬ матрицу размером [k][k] без #define ; k -число введённое пользователем) :

#define S 3
#define R 3
#define G S*R
void main()
{
int arrt[R],maxarr[R];
int i,j,l,f,w,q;
int k,max[G],x=0,y=0;
printf("Enter positive integer smaller than 2000\n");
////////////////Entering maarah
for(i=0;i<S;i++)
{
for(j=0;j<R;)
{
printf("in place : [%d][%d]",i,j);
scanf("%d",&arrt[j]);
while(!(arrt[j]<2000))
{
printf("Wrong number, try again! The place is : [%d][%d] ",i,j);
scanf("%d",&arrt[j]);
}
j++;
}
}
//////Ebtering of k
printf("Enter positive integer small than S and R\n");
scanf("%d",&k);
//////Checking if k is correct for the item 3 .
while(!(k<=S && k<=R))
{
printf("Wrong number, try again! ");
scanf("%d",&k);
}
////Printing of Maarah
for(i=0;i<S;i++)
{
for(j=0;j<R;j++)
{
printf(" |%d| ",arrt[j]);
}
printf("\n");
}
printf("\n");
for(w=0;w<(S-k+1);w++)
{
for(q=0;q<(R-k+1);q++)
{
for(i=w;i<k+w;i++)
{
for(j=q;j<k+q;j++)
{
max[j]+=arrt[j];
if(max[q]>max[q-1])
{
maxarr[j]=arrt[j];
}
}
}
}
}

for(i=0;i<S;i++)
{
for(j=0;j<R;j++)
{
printf(" |%d| ",maxarr[j]);
}
printf("\n");
}
}
В любом случае спасибо .
45K
18 декабря 2011 года
_Sakura_
2 / / 15.12.2008
Напомните, пожалуйста, как в С++ перейти к строке открытого файла, зная ее номер?
Файл открыт на запись, надо перейти на заданную строку и изменить там данные.
Заранее спасибо!
70K
18 декабря 2011 года
Настен
37 / / 13.10.2011
привет!Посоветуйте какие нибудь хорошие книги по С++ и шаблонам..
14
19 декабря 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: Настен
привет!Посоветуйте какие нибудь хорошие книги по С++ и шаблонам..


1. Стандарт языка С++
2. Авторы: Дейтл; Страуструп; Шилдт и Майерс (почти любые их книги о С++, новее - лучше)
3. По шаблонам: Вандервурд + Джосаттис
вообще о книгах есть тема соответствующая.

78K
19 декабря 2011 года
AndrewSh
5 / / 19.12.2011
Привет, работаю в роге, она строит 2D графики, мне нужно построить 3D, прога понимает С# , можно запускать DLL, мне нужно передавать в модуль данные и построить график в сферических координатах,
1 - каким модулем пользоваться в Visual Studio
2 - может кто знает где посмотреть готовые блоки с параметрическим 3D
3 - что посоветуете
14
19 декабря 2011 года
Phodopus
3.3K / / 19.06.2008
Цитата: AndrewSh

3 - что посоветуете


внятно сформулировать вопрос

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог