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

Как не допустить повторное использование кода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Не могу понять назначение двух библиотек http://www.cyberforum.ru/cpp-beginners/thread1237270.html
привет вы извените конечно покажусь просто нубом каким-то но смотрел везде в гугле здесь не могу понять для чего эти библиотеки #include < "stdafx.h"> #include <iomanip> можете объяснить мне как-будто мне 5 лет
C++ Перевод кода с Паскаля на С++ (вычислить стоимость картины) Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Мне 11 лет, и я учусь программировать на Pascal ABC. Как мне перевести код Pascal ABC в Visual C++? Вот код: uses crt; var a, b, c: real; begin writeln ('Введите ширину картины.'); readln (a); writeln ('Введите длину картины.'); http://www.cyberforum.ru/cpp-beginners/thread1237206.html
C++ Почему не проверяется условие else if
Что то я в упор не вижу почему не проверяет условие else if #include <iostream> #include <cmath> using namespace std; int main() { setlocale(0, ""); int a,b,c; double D; cout<<"Ââåäèòå ïàðàìåòðû a, b è c \n";
C++ Application has failed to start because the application configuration is incorrect (+LNK4099, 4098)
Получил тестовое задание на джуна C++. Проект - Недоделанный арканоид на собственном движке конторы. Моя задача допилить игру. В задании 2 варианта solution'ов: под MS Visual Studio 2008 и под VS2010. (быть может это имеет значение - из этого предполагаю, что делался проект на VS2008, а к VS2010 уже адаптировали). Проект билдится, хотя и с 400+ warning'ами, большая часть из которых LNK4099...
C++ Множественное наследование - когда оно действительно нужно? http://www.cyberforum.ru/cpp-beginners/thread1237158.html
Здравствуйте! До изучения языка C++ я программировал на языках типа Java и C#, где множественное наследование от классов явно запрещено. Долгое время после я обходился без этой возможности. Много тем в учебниках, где обсуждалось множественное наследование, были сопровождены примерами, но мне всегда казалось, что это можно выстроить гораздо красивее и логичней, совершенно не используя...
C++ Сортировка книг по убыванию года изнания 2) Написать программу сортировки книг в массиве структур по убыванию года издания подробнее

Показать сообщение отдельно
IIARTEMII
20 / 20 / 3
Регистрация: 14.06.2012
Сообщений: 95
Завершенные тесты: 1
01.08.2014, 18:04     Как не допустить повторное использование кода
CHELOVEKPAUK, если я правильно понял что Вы хотите, то для работы в рантайме можно просто проинициализировать константы на двух языках, а потом в зависимости от выбранного языка использовать конкретную "локаль":

Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <string>
#include <iostream>
 
using std::string;
using std::cout;
using std::endl;
 
struct words {
    explicit words(const string &JN, const string &QN, const string &KN, const string &AN,
                    const string &CN, const string &DN, const string &HN, const string &SN) : JACK_NAME(JN), QUEEN_NAME(QN),
                    KING_NAME(KN), ACE_NAME(AN), CLUBS_NAME(CN), DIAMONDS_NAME(DN), HEARTS_NAME(HN), SPADES_NAME(SN) {}
 
    const string JACK_NAME, QUEEN_NAME, KING_NAME, ACE_NAME, CLUBS_NAME, DIAMONDS_NAME, HEARTS_NAME, SPADES_NAME;
};
 
int main()
{
    words rus("Валет", "Королева", "Король", "Туз", "треф", "бубен", "черви", "пики");
    //words en(/* ваши аналоги на английском */);
    cout << rus.JACK_NAME << endl;
    return 0;
}

Если Вам надо с условной компиляцией, то придётся пилить два куска кода и перед ним делать #define. Например (опираясь на мою реализацию):
Кликните здесь для просмотра всего текста
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
#include <string>
 
using std::string;
 
struct words {
    explicit words(const string &JN, const string &QN, const string &KN, const string &AN,
                    const string &CN, const string &DN, const string &HN, const string &SN) : JACK_NAME(JN), QUEEN_NAME(QN),
                    KING_NAME(KN), ACE_NAME(AN), CLUBS_NAME(CN), DIAMONDS_NAME(DN), HEARTS_NAME(HN), SPADES_NAME(SN) {}
 
    const string JACK_NAME, QUEEN_NAME, KING_NAME, ACE_NAME, CLUBS_NAME, DIAMONDS_NAME, HEARTS_NAME, SPADES_NAME;
};
 
// где-то инициализируете локаль
words init() {
#ifdef RUS
return words("Валет", "Королева", "Король", "Туз", "треф", "бубен", "черви", "пики");
#endif
// иначе на английском
return words(/* Ваш аналог на англ */);
}
 
// и где-то в файле реализации
#define RUS
#include "myheader"
// в main или ещё где-то
words _tmylocale = init();

Пример с использованием моей реализации неудачный, потому что это бред - проще передать int в функцию и сравнить через if, после чего вернуть нужную "локаль". А в Вашем случае придётся писать n практически одинаковых строк кода.
Очень хорошо было бы вот так:
Кликните здесь для просмотра всего текста
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
#include <string>
 
using std::string;
 
struct words {
    explicit words(const string &JN, const string &QN, const string &KN, const string &AN,
                    const string &CN, const string &DN, const string &HN, const string &SN) : JACK_NAME(JN), QUEEN_NAME(QN),
                    KING_NAME(KN), ACE_NAME(AN), CLUBS_NAME(CN), DIAMONDS_NAME(DN), HEARTS_NAME(HN), SPADES_NAME(SN) {}
 
    const string JACK_NAME, QUEEN_NAME, KING_NAME, ACE_NAME, CLUBS_NAME, DIAMONDS_NAME, HEARTS_NAME, SPADES_NAME;
};
 
words getloc(int l = 0) {
    if (l)
        return words("Валет", "Королева", "Король", "Туз", "треф", "бубен", "черви", "пики");
    return words( /* english */ );
}
 
int main()
{
    words myloc = getloc(1); // RUS
    // или следующий вариант в зависимости от ситуации
    words myloc = getloc(); // EN
    return 0;
}
 
Текущее время: 11:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru