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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 34, средняя оценка - 4.71
uway
0 / 0 / 0
Регистрация: 20.05.2010
Сообщений: 7
#1

error LNK1120: 1 неразрешенных внешних элементов - C++

26.12.2011, 20:49. Просмотров 4267. Ответов 3
Метки нет (Все метки)

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
/*Person.h*/
class Person {
 
        char Name[50];
        char FatherName[50];
        char SurName[50];
        int Byyyy;
        int Bmm;    
        int Bdd;    
             static int BaseSalary;
             float percentAdd;
            static void setBaseSalary(int BS=0);
            float Salary;
public:
        void init (const char surName[],const  char Name[], const char fatherName[]);
        
        void setName (const char Nm[]);         
        void setFatherName (const char Fnm[]);
        void setSurName (const char Snm[]); 
        char* getName ();
        char* getFatherName ();
        char* getSurName();
        void setBirthday (int dd, int mm, int yyyy);
        int getBdd();
        int getBmm();
        int getByyyy();             
    Person();
    Person(const char surname[],const char name[],const char fathername[],int bdd,int bmm, int byyyy,float percentadd);
    Person( const Person& person);
                    
    void personPrint();
            void setPercentAdd(float Pa);
            float getPercentAdd();
            float getSalary();
 
};
/*Person.cpp*/
...............
        void Person::setBaseSalary(int Bs)
    {
        BaseSalary=Bs;
    }
        float Person::getSalary()
    {
        return BaseSalary+BaseSalary*getPercentAdd()/100;
    }
...............

После добавления static int BaseSalary и его сэтера линкер начал ругаться:
1>person.obj : error LNK2001: неразрешенный внешний символ ""private: static int Person::BaseSalary" (?BaseSalary@Person@@0HA)"
1>C:\Users\Alexander\Desktop\C++\ООП\Lab5\Debug\la5.exe : fatal error LNK1120: 1 неразрешенных внешних элементов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2011, 20:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос error LNK1120: 1 неразрешенных внешних элементов (C++):

error LNK1120: 2 неразрешенных внешних элементов - C++
Всем привет! В чем может быть проблема и как её устранить! пишет вот так Ошибка 3 error LNK1120: 2 неразрешенных внешних...

Error LNK1120: неразрешенных внешних элементов: 2 - C++
Доброго времени суток. Не могу понять в чем ошибка. Подскажите, пожалуйста. Задание: Программно реализовать следующие методы сортировки...

Error LNK1120: неразрешенных внешних элементов: 1 - C++
Подскажите где ошибка??? //файл sourse.h #include <iostream> using namespace std; template <class T> T ABS(T...

Error LNK1120: неразрешенных внешних элементов: 1 - C++
#include <iostream> #include <fstream> #include <locale.h> #include <stdlib.h> #include <conio.h> using namespace std; void...

fatal error LNK1120: 1 неразрешенных внешних элементов - C++
ту проблему исправил. #include <iostream> #include <conio.h> using namespace std; class rational { public: int...

fatal error LNK1120: 1 неразрешенных внешних элементов - C++
не понимаю где и в чем проблема???? #include<iostream> using namespace std; void main() {float a,b,c,p,S,max,min,sr; ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
igorrr37
1646 / 1274 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
26.12.2011, 21:04 #2
попробуй добавить в Person.cpp:
int Person::BaseSalary = 0;
uway
0 / 0 / 0
Регистрация: 20.05.2010
Сообщений: 7
26.12.2011, 21:07  [ТС] #3
Цитата Сообщение от igorrr37 Посмотреть сообщение
попробуй добавить в Person.cpp:
int Person::BaseSalary = 0;
спасибо.

я так понял, в случае static это обязательно нужно делать, да?!
igorrr37
1646 / 1274 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
26.12.2011, 21:22 #4
Для инициализации нужно знать, где находится статическая переменная, этой информации нет в объявлении класса. Когда вы пишете int A::counter вы указываете место, где эта перменная будет создана и можете ее иницилизировать.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2011, 21:22
Привет! Вот еще темы с ответами:

Fatal error LNK1120: неразрешенных внешних элементов: 11 - C++
Добрый вечер, нужно написать программу, которая бы запускала виртуальную машину(WMware), делала снэпшот и откатывала до предыдущего...

Fatal error LNK1120: 1 неразрешенных внешних элементов - C++
Товарищи помогите второй день мучаюсь, не могу найти ошибку. В ООП я новичок и я так думаю ошибка в структуре работы алгоритма объектов...

C++ fatal error LNK1120: 1 неразрешенных внешних элементов - C++
Программа иллюстрирующая работу бинарных операторов // BitTest - инициируются две переменные и // выводятся результаты выполнения ...

Ошибка 3 error LNK1120: неразрешенных внешних элементов: 2 - C++
Добрый день. Возникла такая проблема. При компиляции показывает 3 ошибки. Ошибка 1 error LNK2019: ссылка на неразрешенный внешний...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
26.12.2011, 21:22
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru