redefinition; multiple initialization

18,400

You error is that you define the check variable in the header file:

namespace NameManipulator {
    int check = 4;
    // Error in the line above

Change it to a declaration, as this:

namespace NameManipulator {
    extern int check;

and add the definition in a source file:

int NameManipulator::check = 4;
Share:
18,400

Related videos on Youtube

user1576628
Author by

user1576628

Updated on July 03, 2022

Comments

  • user1576628
    user1576628 almost 2 years

    I'm writing a program that includes a secondary form using C++/CLI in Visual Studio 2005. So far, I haven't progressed much due to a pair of redefinition errors that don't make much sense.

    Mode.h(12) : error C2374: 'NameManipulator::check' : redefinition; multiple initialization
    Mode.h(12) : see declaration of 'NameManipulator::check'
    Mode.h(22) : error C2011: 'NameManipulator::Mode' : 'class' type redefinition
    Mode.h(22) : see declaration of 'NameManipulator::Mode'
    

    I've only declared each of these once, in just one namespace. One was even pre-generated by the compiler. Is there anything I can do to fix this besides starting from scratch? Any help would be much appreciated. (Code below)

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    
    namespace NameManipulator {
    int check = 4;
    /// <summary>
    /// Summary for Mode
    ///
    /// 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 ref class Mode : public System::Windows::Forms::Form
    {
    public:
        Mode(void)
        {
            InitializeComponent();
            //
            //TODO: Add the constructor code here
            //
        }
    
    protected:
        /// <summary>
        /// Clean up any resources being used.
        /// </summary>
        ~Mode()
        {
            if (components)
            {
                delete components;
            }
        }
    public: System::Windows::Forms::RadioButton^  rdoAllCaps;
    public: System::Windows::Forms::RadioButton^  rdoAllLow;
    public: System::Windows::Forms::RadioButton^  rdoReverse;
    public: System::Windows::Forms::RadioButton^  rdoNormal;
    private: System::Windows::Forms::Button^  btnOK;
    protected: 
    
    private:
        /// <summary>
        /// Required designer variable.
        /// </summary>
        System::ComponentModel::Container ^components;
    
    #pragma region Windows Form Designer generated code
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        void InitializeComponent(void)
        {
            this->rdoAllCaps = (gcnew System::Windows::Forms::RadioButton());
            this->rdoAllLow = (gcnew System::Windows::Forms::RadioButton());
            this->rdoReverse = (gcnew System::Windows::Forms::RadioButton());
            this->rdoNormal = (gcnew System::Windows::Forms::RadioButton());
            this->btnOK = (gcnew System::Windows::Forms::Button());
            this->SuspendLayout();
            // 
            // rdoAllCaps
            // 
            this->rdoAllCaps->AutoSize = true;
            this->rdoAllCaps->Location = System::Drawing::Point(12, 12);
            this->rdoAllCaps->Name = L"rdoAllCaps";
            this->rdoAllCaps->Size = System::Drawing::Size(75, 17);
            this->rdoAllCaps->TabIndex = 0;
            this->rdoAllCaps->Text = L"ALL CAPS";
            this->rdoAllCaps->UseVisualStyleBackColor = true;
            // 
            // rdoAllLow
            // 
            this->rdoAllLow->AutoSize = true;
            this->rdoAllLow->Location = System::Drawing::Point(12, 35);
            this->rdoAllLow->Name = L"rdoAllLow";
            this->rdoAllLow->Size = System::Drawing::Size(63, 17);
            this->rdoAllLow->TabIndex = 1;
            this->rdoAllLow->Text = L"all lower";
            this->rdoAllLow->UseVisualStyleBackColor = true;
            this->rdoAllLow->CheckedChanged += gcnew System::EventHandler(this, &Mode::rdoAllLow_CheckedChanged);
            // 
            // rdoReverse
            // 
            this->rdoReverse->AutoSize = true;
            this->rdoReverse->Location = System::Drawing::Point(12, 58);
            this->rdoReverse->Name = L"rdoReverse";
            this->rdoReverse->Size = System::Drawing::Size(71, 17);
            this->rdoReverse->TabIndex = 2;
            this->rdoReverse->Text = L"rEVERSE";
            this->rdoReverse->UseVisualStyleBackColor = true;
            this->rdoReverse->CheckedChanged += gcnew System::EventHandler(this, &Mode::rdoReverse_CheckedChanged);
            // 
            // rdoNormal
            // 
            this->rdoNormal->AutoSize = true;
            this->rdoNormal->Checked = true;
            this->rdoNormal->Location = System::Drawing::Point(12, 81);
            this->rdoNormal->Name = L"rdoNormal";
            this->rdoNormal->Size = System::Drawing::Size(73, 17);
            this->rdoNormal->TabIndex = 3;
            this->rdoNormal->TabStop = true;
            this->rdoNormal->Text = L"rdoNormal";
            this->rdoNormal->UseVisualStyleBackColor = true;
            // 
            // btnOK
            // 
            this->btnOK->DialogResult = System::Windows::Forms::DialogResult::OK;
            this->btnOK->Location = System::Drawing::Point(32, 106);
            this->btnOK->Name = L"btnOK";
            this->btnOK->Size = System::Drawing::Size(33, 23);
            this->btnOK->TabIndex = 4;
            this->btnOK->Text = L"OK";
            this->btnOK->UseVisualStyleBackColor = true;
            // 
            // Mode
            // 
            this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
            this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
            this->ClientSize = System::Drawing::Size(99, 138);
            this->ControlBox = false;
            this->Controls->Add(this->btnOK);
            this->Controls->Add(this->rdoNormal);
            this->Controls->Add(this->rdoReverse);
            this->Controls->Add(this->rdoAllLow);
            this->Controls->Add(this->rdoAllCaps);
            this->FormBorderStyle = System::Windows::Forms::FormBorderStyle::FixedSingle;
            this->Name = L"Mode";
            this->StartPosition = System::Windows::Forms::FormStartPosition::CenterParent;
            this->Text = L"Mode";
            this->Load += gcnew System::EventHandler(this, &Mode::Mode_Load);
            this->ResumeLayout(false);
            this->PerformLayout();
    
        }
    #pragma endregion
    private: System::Void rdoReverse_CheckedChanged(System::Object^  sender, System::EventArgs^  e){
                 if (rdoReverse->Checked == true)
                     check = 3;
             }
    private: System::Void Mode_Load(System::Object^  sender, System::EventArgs^  e) {
             }
    private: System::Void rdoAllLow_CheckedChanged(System::Object^  sender, System::EventArgs^  e) {
             }
    };
    }