Code has been added to clipboard!

Solidity Visibility And Getters Example 2

Example
// This code does not compile properly

pragma solidity ^0.4.0;

contract cont1 {
    uint private data;

    function func(uint x) private returns(uint y) { return x + 1; }
    function dataSet(uint x) { data = x; }
    function dataGet() public returns(uint) { return data; }
    function compute(uint x, uint y) internal returns (uint) { return x+y; }
}

contract cont2 {
    function dataRead() {
        cont1 z = new cont1();
        uint local = z.func(7); // error: member "func" is not visible
        z.dataSet(3);
        local = z.dataGet();
        local = z.compute(3, 5); // error: member "compute" is not visible
    }
}

contract cont3 is cont1 {
    function g() {
        cont1 z = new cont1();
        uint val = compute(3, 5); // access to internal member (from derived to parent contract)
    }
}